美文网首页日常开发Bug小记
Android crash 异常捕获处理Thread.Uncau

Android crash 异常捕获处理Thread.Uncau

作者: IMSk | 来源:发表于2017-11-17 15:22 被阅读29次

    场景

    最近正在做富文本编辑器功能,用原生实现。效果图如下:


    image.png

    面临一个问题是:如果用户确实写了很多内容,在某种场景下,导致程序奔溃了的,不论是外在或是富文本编辑器本身导致的,都会导致用户辛辛苦苦在手机上撰写的东西丢失掉。很痛心。

    所以产品希望,如果发生意外闪退,帮助用户保存数据。

    解决方案

    想到了Android的 Thread.UncaughtExceptionHandler 。But:

    image.png image.png

    如图所示defaultUncaughtHandler是一个 static, 一旦设置之后,别人就拿不到了的回调事件了的,比如友盟之类的统计无法上报错误日志了的。

    如何解?

    image.png

    如图所示,持有一下别人的引用,crash的时候同时通知下别人。这样就能保证别人也能正常拿到事件回调了的。

    But, 这个bug小日记,其实是想说:抢系统资源的时候,请礼貌一些。因为据说友盟似乎就简单粗暴直接自己覆盖掉别人的了的,那样导致如果是后面初始化友盟,导致别人就拿不到回调了的。

    同理,在处理音视频的时候,请也礼貌一些。因为系统其实也是支持资源管理的,但很多音乐播放软件并没有做这个处理。导致一旦打开音频之后,就被这个APP给霸占了的。这一点ios从API设计层面就规避掉了的。

    当然日常开发过程中,也要注意 static的问题,别动不动为了方便就用静态变量,因为很难保证不被别人串改。

    做一个有良知的开发者。加油。

    相关文章

      网友评论

        本文标题:Android crash 异常捕获处理Thread.Uncau

        本文链接:https://www.haomeiwen.com/subject/ddjjvxtx.html