use*_*789 22 java android ui-thread
如果运行我的代码的线程是UI线程,那么在Android上是否有任何方法可以知道?在摇摆中,有人 SwingUtilities.isEventDispatchThread()告诉我,我是否在UI线程上,或不.Android SDK中是否有任何功能让我知道这一点?
Fen*_*res 40
从这里借来的答案:如何检查当前线程是否不是主线程
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() {
...
}
});
Run Code Online (Sandbox Code Playgroud)保证在当前线程上运行,如果是UI,或在UI线程中排队.
小智 8
是的,有一种方法.针对主lopper的线程对象检查当前线程对象.主循环器总是在UI线程中.
boolean isOnUiThread = Thread.currentThread() == Looper.getMainLooper().getThread();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13074 次 |
| 最近记录: |