这里的任何人都知道如何编写测试(或者理想情况下有一个示例)来检查是否在 UI 线程上调用了方法?
问问题
1454 次
2 回答
4
答案来自以下链接:
1)Looper.myLooper() == Looper.getMainLooper()
2) Android 应用程序只有一个 UI 线程,因此您可以在 Activity 回调中的某处,如 onCreate() 检查并存储其 ID,然后将该线程的 ID 与存储的 ID 进行比较。
mMainThreadId = Thread.currentThread().getId();
3)如果您想在 UI 线程上做某事并通过使用对 Activity 有任何引用
mActivity.runOnUiThread( new Runnable() {
@Override
public void run() {
...
}
});
希望能帮助到你
于 2013-09-02T11:17:41.920 回答
3
UI线程总是id = 1,所以你可以尝试检查:
if(Thread.currentThread().getId() == 1) {
///...
}
于 2013-09-02T11:17:21.800 回答