作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在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() 方法;但是安卓的主线程可以。 Main Thread 可以作为 HandlerThread
访问吗?
最佳答案
如果你看一下源码,你会发现looper里面的线程不是HandlerThread
类型:
60 final Thread mThread;
...
188 mThread = Thread.currentThread();
Can Main Thread be accessed as a HandlerThread
没有
关于java - 如何在主线程上调用 getLooper()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27293497/
我是一名优秀的程序员,十分优秀!