在android中经常需要用到异步操作,Thread+Handler方式感觉繁琐,AsyncTask只能执行一次,很多需求不能满足,这时我们可以试试Activity提供的另外一种简单的方法runOnUiThread,runOnUiThread可以帮助你在线程中执行UI更新操作。

以下为代码:

     MyActivity.this. runOnUiThread(new Runnable() {                     @Override                         public void run() {                            // refresh ui 的操作代码                        }                     });


这里需要注意的是runOnUiThread是Activity中的方法,在线程中我们需要告诉系统是哪个activity调用,所以前面显示的指明了activity。

下面为runOnUiThread的代码
public final void runOnUiThread(Runnable action) {        if (Thread.currentThread() != mUiThread) {            mHandler.post(action);        } else {            action.run();        }    }

从代码可以看到,runOnUiThread首先判断是否是UI线程,不是的话就post,如果是的话就正常运行该线程.
只要经过主线程中的Handler.post或者postDelayed处理线程runnable则都可以将其转为UI主线程.再说Handler的机制就是来处理线程与UI通讯的.

更多相关文章

  1. Android-Jni线程(二)— 线程锁之生产者消费者
  2. android 音频系统java部分代码阅读
  3. 实现在一个界面里多个TextView的跑马灯效果
  4. Android(安卓)用style简化layout布局文件
  5. android 访问网络不能在主线程中进行以及在线程中操作UI的解决方
  6. Android高手进阶教程(五)之----Android(安卓)中LayoutInflater的
  7. android 自定义 permission 权限
  8. android与java web交互完成简单的登录和注册
  9. 使用TextView/EditText应该注意的地方

随机推荐

  1. 关于Android(安卓)studio Gradle 实现多
  2. Android属性系统
  3. Android实例收藏
  4. Android获得电话本中的数据(ContentProvid
  5. android核心模块及相关技术
  6. 第二章 IPC机制
  7. Android(安卓)动态logo bootanimation.zi
  8. Binder驱动的实现
  9. C虾仔笔记 - EditText编辑框
  10. android 5.0系统 EditText控件