gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 13:22:10 27 4
gpt4 key购买 nike

在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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com