如何在主线程上调用 getLooper()



在Android中,Main Thread&HandlerThread默认具有Looper和MessageQueue。我可以在handlerThread对象上调用getLooper(),但为什么不在主线程上呢?

HandlerThread ht = new HandlerThread();
Looper htLooper = ht.getLooper();      // Works fine
Thread mainThread = Looper.getMainLooper().getThread();
Looper mainLooper = mainThread.getLooper();    // getLooper() doesn't compile.

在真实场景中,永远不需要在 mainThread 上使用 getLooper();我们可以调用 Looper.getMainLooper() 。我只想知道为什么它不起作用。

我从Java的角度来看,Looper.getMainLooper().getThread()返回一个java.lang.Thread,并且Thread类没有getLooper()方法;但Android的主线程有。主线程可以作为HandlerThread访问吗?

如果你看一下源代码,你会发现 looper 内部的线程不是类型 HandlerThread

60       final Thread mThread;
...
188      mThread = Thread.currentThread();

主线程可以作为处理程序线程访问吗

相关内容

  • 没有找到相关文章

最新更新