Android应用程序异常奔溃退出解决方案
我们在开发应用程序时难免会遇到出现没有被try…catch抓住的RunTimeException信息,从而导致程序异常崩溃退出,大大的影响了用户体验。那么有没有什么方法能避免这一现象呢?
网上一查资料,果然有,UncaughtExceptionHandler就是专门干这个的,看名字就知道啥意思了,如果还不了解这个Google或者Baidu一下 UncaughtExceptionHandler对于它的介绍必须一卡车。
但是网上的例子无一例外的把错误日志记录到文件或者发往服务器,然后使用Toast或者Dialog提示一下“您的程序出现了异常”,最后应用程序还是退出了,还是退出了。我不能让应用程序退出!
那怎么办呢,下面是我的思路,如果不想看就直接跳过这一段看实现结果好了。
首先思路就是能不能把整个应用程序启动的Activity的堆栈信息拿到,当应用程序退出后,在其他进程里根据堆栈信息的先后顺序,逻辑控制一下不就复原了吗,看了好长时间的文档也没有看到怎么得到整个应用的堆栈信息。
思路夭折。有一天无意中看到这Process.killProcess这个方法能重新启动应用,那么原来的堆栈信息不就回来了吗,这下好了,连逻辑控制都省去了。好吧,来试试吧。
原理是这么个原理,至于具体怎么操作可以看我这篇文章的操作:ANDROID 异常奔溃日志捕获