怎么知道Looper是否已经调用quit()成功?
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
inner class HandlerThread : Thread() {
private lateinit var mHandler: Handler
override fun run() {
super.run()
Looper.prepare()
createHandler()
val msg = Message.obtain()
msg.what = 1
mHandler.sendMessage(msg)
Log.i(tag, "sendMessage: " + currentThread().name)
Looper.loop()
}
private fun createHandler() {
mHandler = @SuppressLint("HandlerLeak")
object : Handler() {
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
if (msg.what == 1) {
Log.i(tag, "what 1 handleMessage: ${currentThread().name} ${Looper.myLooper()?.thread?.isAlive}")
} else {
Log.i(tag, "what else handleMessage: ${currentThread().name}")
}
Looper.myLooper()?.quitSafely()
Log.i(tag, "final handleMessage: ${currentThread().name} ${Looper.myLooper()?.isCurrentThread}")
}
}
}
}
实现了一下,用Hnadler子线程给子线程发送消息,课程说,要注意在合适的时机quitSafely(),但是要怎么才能知道Looper是否退出成功,自己试了几个Api,没效果,如上,打印都为true,想问下老师怎么看是否已经退出
10
收起
正在回答 回答被采纳积分+1
1回答
LovelyChubby
2020-12-21 11:59:56
looper.quit不是有个返回值吗
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星