如何检查当前线程是否不是主线程

我需要检查运行某段代码的线程是否是主(UI)线程。 我怎样才能做到这一点?


Looper.myLooper() == Looper.getMainLooper()

如果这返回true,那么你在UI线程上!


你可以使用下面的代码来知道当前线程是否是UI /主线程

if(Looper.myLooper() == Looper.getMainLooper()) {
   // Current Thread is Main Thread.
}

或者你也可以使用这个

if(Looper.getMainLooper().getThread() == Thread.currentThread()) {
   // Current Thread is Main Thread.
}

这是类似的问题


最好的方法是最清晰的方式:*

Thread.currentThread() == Looper.getMainLooper().getThread()

或者,如果运行时平台是API级别23(棉花糖6.0)或更高:

Looper.getMainLooper().isCurrentThread()

请参阅Looper API。 请注意,调用Looper.getMainLooper()涉及同步化(请参阅源代码)。 您可能希望通过存储返回值并重新使用它来避免开销。

*信用greg7gkb

链接地址: http://www.djcxy.com/p/87913.html

上一篇: How to check if current thread is not main thread

下一篇: How to call a method after a delay in Android