我们都知道,Android开发过程,有些比较耗时的操作都是需要放在子线程中执行的,但是UI相关的操作又必须放在主线程进行,所以就有了线程之间的切换。那如何从子线程切换到主线程呢?

方法一:view.post(Runnable action)

  textView.post(new Runnable() {         @Override         public void run() {                 //更新UI                 }             });

方法二:runOnUiThread(Runnable action)

    runOnUiThread(new Runnable() {       @Override        public void run() {               //更新UI             }         });

方法三:Handler机制

 Handler mainHandler = new Handler(Looper.getMainLooper());        mainHandler.post(new Runnable() {           @Override              public void run() {                    //更新UI                 }             });

Handle机制的另外一种方式:

先在主线程中创建一个handle

 Handler handler = new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            //该方法运行在主线程        }    };

其次,在子线程中发送一个消息,就可以在主线程中接收到该消息,即可在handleMessage()中进行UI相关操作

  new Thread(new Runnable() {            @Override            public void run() {                handler.sendEmptyMessage(0);            }        }).start();

 

 

 

 

更多相关文章

  1. Android基于OpenGL的GLSurfaceView创建一个Activity实现方法
  2. 【转】Android-Action Bar使用方法
  3. Android更新Ui线程的四个方法
  4. Android获取本机IP地址(不是localhost)和MAC的方法
  5. Android 导入android源码有错,R.java文件不能自动生成解决方法
  6. Git,SVN使用方法杂记(更新中)
  7. 解决develop.android.com无法访问到最佳方法

随机推荐

  1. Eclipse与Android源码中ProGuard工具的使
  2. Anroid-vlc开源播放器代码编译及简单调用
  3. Android应用程序窗口(Activity)的窗口对象(W
  4. 微信 JSSDK 在 Android(安卓)和 iOS 的一
  5. Android(安卓)intent 属性详解(二)
  6. 为Android的界面设计增加跳跃效果
  7. 一起Talk Android吧(第一百四十七回:Androi
  8. Android之等比例显示图片
  9. Android应用进入爆发期 手机游戏仍是市场
  10. 图解Android:View的绘制机制与源码解析