Android 主动 try-catch 主线程的 Exception

android.os.Handler(android.os.Looper.getMainLooper()).post(object : Runnable {
    override fun run() {
        while (true) {
            try {
                android.os.Looper.loop()
            } catch (e: Throwable) {
                android.util.Log.e(TAG,"Looper异常:",e)
            }
        }
    }
})

当调用上述代码之后,当处理到我们主动 post 的 message,这个时候就会因为 Looper.loop() 使得主线程对于后续的 message 的处理都约束在了当前代码块。

然后因为外层有 try-catch ,所以就相当于主线程的都被我们人为的 try-catch 住了。

上述处理,其实就是一些 Exception 兜底处理库的实现原理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章