0

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

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

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

1 回答 1

0

onBackPressed()将永远被调用UI thread。所以runOnUiThread()这里不需要方法。

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

在内部runOnUiThread()执行以下操作

public final void runOnUiThread(Runnable action) {
    if (Thread.currentThread() != mUiThread) {
        mHandler.post(action);
    } else {
        action.run();
    }
}
于 2017-02-21T11:47:17.370 回答