Android 上有什么方法可以知道运行我的代码的线程是否是 UI 线程?在摇摆有SwingUtilities.isEventDispatchThread()
告诉我我是否在 UI 线程上。 Android SDK 中是否有任何函数可以让我知道这一点?
-
从这里借来的答案:如何检查当前线程是否不是主线程 https://stackoverflow.com/questions/11411022/how-to-check-if-current-thread-is-not-main-thread
Looper.myLooper() == Looper.getMainLooper()
-
任何 Android 应用程序都只有一个 UI 线程,因此您可以在 Activity 回调中的某个位置(例如 onCreate())检查并存储其 ID,然后将该线程的 ID 与存储的 ID 进行比较。
mMainThreadId = Thread.currentThread().getId();
-
无论如何,您可以省略检查是否想在 UI 线程上执行某些操作并通过使用对 Activity 进行任何引用
mActivity.runOnUiThread( new Runnable() {
@Override
public void run() {
...
}
});
如果它是 UI,或者在 UI 线程中排队,则保证在当前线程上运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)