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 兜底处理库的实现原理。

更多相关文章

  1. android context调用startActivity时报错:Calling startActivity(
  2. Android(安卓)JNI和NDK学习(2)--编程入门
  3. Android判断是Wifi还是4G网络代码
  4. 关于Android Studio提交代码到Git上的操作(Mac)
  5. java/android下JNI编程总结
  6. Android GPS 定位的实现

随机推荐

  1. MySQL 使用事件(Events)完成计划任务
  2. MySQL触发器的使用
  3. Oracle更换为MySQL遇到的问题及解决
  4. MySQL 重命名表的操作方法及注意事项
  5. Mysql官方性能测试工具mysqlslap的使用简
  6. MySQL官方导出工具mysqlpump的使用
  7. 新手必备之MySQL msi版本下载安装图文详
  8. MySQL数据库压缩版本安装与配置详细教程
  9. MySQL 8.0 之不可见列的基本操作
  10. Mysql Online DDL的使用详解