Android解决重复创建及白屏的自定义捕获Application全局异常

本文介绍如何解决Android应用中的重复创建、白屏问题,通过自定义CrashHandler实现全局异常捕获,并将错误日志保存到本地。在解决过程中,参考了其他博主的经验,并对代码进行了修改,确保在程序异常退出后,再次启动时不会出现白屏和程序无响应的问题。同时,使用AppManager优雅地退出应用程序,避免了异常吐司和多个log文件的创建。
摘要由CSDN通过智能技术生成

许久没有更新了,主要是一些想更新的功能尚未实现,就先屯着以后更新吧。

这次想做一个全局异常的捕获并创建文件到本地,然后发送到服务器的功能,但是搜索了好几篇文章都达不到想要的效果,在集合了好几位前人的经验后,整合了部分代码,然后终于解决了所有问题。下面是我参考的两篇博客,我的成功也是基于他们的基础之上的,只是对大神的代码做了部分的修改。

参考博客:http://blog.csdn.net/jdsjlzx/article/details/7606423,飘舟大神转发的代码,出现了两个bug,一个是会一直吐司,并且会创建3个log文件,在debug的时候,会出现走一步创建一个log文件的情况。

参考博客二:http://blog.csdn.net/u012516952/article/details/50504610,在网上查找了很多资料之后,发现还是只有飘舟大神转的那篇比较完善,于是乎还是从上篇博客商下文章,这位大哥的方法也是建立在第一篇博客基础之上的,完美解决了重复创建和吐司的问题,但是在程序退出后点击图标再次打开,会出现白屏,返回键无效,接着黑屏程序无响应的情况。

而我的代码就是基于前两位的轮子,加上自己的一些理解,对代码进行了部分修改,达到最总的效果,不多说,直接上基本流程代码,我们需要创建一个CrashHandler类来实现 UncaughtExceptionHandler 接口,Thread.UncaughtExceptionHandler:线程未捕获异常处理器,用来处理未捕获异常。如果程序出现了未捕获异常,默认会弹出系统中强制关闭对话框。我们需要实现此接口,并注册为程序中默认未捕获异常处理。这样当未捕获异常发生时,就可以做一些个性化的异常处理操作。 

package com.youdi.jzb.util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.P
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值