这对UI线程有何影响?

时间:2017-02-21 11:43:25

标签: android android-runonuithread

在AppCompatActivity中,只想获得一些反馈。这个Runnable什么时候运行?

是否在主ui线程上发布super.onBackPressed();,然后我的Runnable也发布到主ui线程?我知道这是一个正确的队列。这是对的吗?

@Override
public void onBackPressed() {
    super.onBackPressed();
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
             // some work
            }
        });
}

1 个答案:

答案 0 :(得分:0)

始终会在onBackPressed()上调用

UI thread。所以这里不需要runOnUiThread()方法。

您的代码所做的是从UI线程本身在UI线程上发布Runnable

内部runOnUiThread()执行以下操作

public final void runOnUiThread(Runnable action) {
    if (Thread.currentThread() != mUiThread) {
        mHandler.post(action);
    } else {
        action.run();
    }
}