处理程序不仅仅用于与
主要的
活套。
Looper
是一个在消息队列上循环并分派消息的类,每个实例使用一个
Thread
.
A.
HandlerThread
线
这也有一个问题
活套
附属于它。
“主要”
您的应用程序的
手摇线
.
当您实例化
Handler
如果构造函数为空,则
处理者
将附加到
活套
的
线
在其中创建实例。例如,如果您创建一个
线
在里面
onCreate
Activity
,然后
处理者
线
因为生命周期回调是在那里执行的。
当你打电话的时候
post(Runnable)
这个
Runnable
将在线程上运行
处理者
附于。所以,如果你创建一个
处理者
在您的一个生命周期回调中
那么不管是哪一个
线
你发布
可运行
从开始,它将始终在主服务器上执行
这是最常见的用法,也是您的代码所做的,但它不是唯一的用法。例如,您可以实例化一个
手摇线
,然后从
活动
生命周期回调,您可以发布
可运行
这将执行非常长的操作,并且不会阻塞您的UI,因为它将在不同的平台上执行
线
.
另一种用法
邮政(可运行)
(有时是一个针对奇怪UI bug的通用修复程序)就是从主线程调用它,目的是将执行延迟到整个方法执行完毕之后。
fun onCreate(savedInstanceState: Bundle?) {
Handler().post {
// code here is executed after `onCreate` has returned
}
// code here is executed before the one posted on the Handler
}