现在的位置: 首页 > 综合 > 正文

android中的runOnUiThread(runnable)

2018年04月19日 ⁄ 综合 ⁄ 共 603字 ⁄ 字号 评论关闭

在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通讯的.

抱歉!评论已关闭.