解决Android出现闪退
Android项目中经常闪退(anr)原因有很多种,各种没有捕获的异常都会导致项目的崩溃,对于此问题除了在写代码是要考虑全面,并对可能出现 的Exception进行捕获,同时也可以设置一个全局异常捕获的机制来保证你的疏忽(对应该捕获的异常没有做处理)。具体步骤如下:
1、首先创建一个Handler 继承java.lang.Thread.UncaughtExceptionHandler:
//未捕获异常
@Override
public void uncaughtException(Thread thread, Throwable ex) {
String threadName = thread.getName();
ItktLog.d(threadName);
//这里我们可以根据thread name来进行区别对待,同时,我们还可以把异常信息写入文件,以供后来分析
}
//单例引用,这里我们做成单例的,因为我们一个应用程序里面只需要一个UncaughtExceptionHandler实例
private static CrashHandler instance;
private CrashHandler(){}
//同步方法,以免单例多线程环境下出现异常
public synchronized static CrashHandler getInstance(){
if (instance == null){
instance = new CrashHandler();
}
return instance;
}
//初始化,把当前对象设置成UncaughtExceptionHandler处理器
public void init(Context ctx){
Thread.setDefaultUncaughtExceptionHandler(this);
}
2、在自定义Application的oncreate()方法中初始化:
CrashHandler handler = CrashHandler.getInstance();
handler.init(getApplicationContext());
本文出自 “信诺集团技术中心” 博客,请务必保留此出处http://sinoteam.blog.51cto.com/9115640/1567452
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。