这里的任何人都知道如何编写测试(或理想情况下有一个例子)来检查是否在UI-Thread上调用了一个方法?
答案 0 :(得分:4)
从以下链接提及的答案:
How to check if current thread is not main thread
How to know if this thread is a UI Thread
1)Looper.myLooper() == Looper.getMainLooper()
2)Android应用程序只有一个UI线程,因此您可以在Activity回调中的某个位置(如onCreate())检查并存储其ID,然后将该线程的ID与存储的ID进行比较。
mMainThreadId = Thread.currentThread().getId();
3)如果您想在UI线程上执行某些操作,并使用
引用ActivitymActivity.runOnUiThread( new Runnable() {
@Override
public void run() {
...
}
});
希望有所帮助
答案 1 :(得分:3)
UI线程始终具有id = 1,因此您可以尝试检查:
if(Thread.currentThread().getId() == 1) {
///...
}