Android UncaughtExceptionHandler 记录异常并重启程序

原创 2016年06月02日 00:14:18

异常捕获主要是在全局的Application中来处理的,Android提供了一个CrashHandler用来进行错误处理。

intent添加 “Intent.FLAG_ACTIVITY_NEW_TASK” 标记的原因是——Content的startActivity方法,需要开启一个新的task。如果使用 Activity的startActivity方法,不会有任何限制,因为Activity继承自Context,重载了startActivity方法。所以如果是context启动Activity就需要添加这个标记。

package com.chy.global;

import java.lang.Thread.UncaughtExceptionHandler;

import android.app.Application;
import android.content.Intent;

import com.chy.activity.MainActivity;
import com.chy.utils.LogUtils;

public class CrashApplication extends Application {
	//异常处理器
	private CrashHandler crashHandler = null;
	
	@Override
	public void onCreate() {
		super.onCreate();
		crashHandler = new CrashHandler(this);
		Thread.setDefaultUncaughtExceptionHandler(crashHandler);
	}

	class CrashHandler implements UncaughtExceptionHandler {

		private Application app = null;
		
		public CrashHandler(Application app) {
			this.app = app;
		}
		
		@Override
		public void uncaughtException(Thread thread, Throwable ex) {
			ex.printStackTrace();
			LogUtils.log(ex);
			// 此处示例发生异常后,重新启动应用
			Intent intent = new Intent(app, MainActivity.class);
			intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			app.startActivity(intent);
			android.os.Process.killProcess(android.os.Process.myPid());
		}
	}
	
}


版权声明:转载请注明出处——http://blog.csdn.net/chy555chy/article

相关文章推荐

Android使用UncaughtExceptionHandler捕获全局异常

1. 前言Android应用出现crash时,会出现“程序异常退出”的提示,随后应用关闭,用户体验非常不好。一般为了捕获应用运行时异常后做出适当处理,给出合理提示时,我们开发中可以继承Uncaught...

Android使用UncaughtExceptionHandler捕获全局异常

http://git.oschina.net/oschina/Android-app 大家可以参考。 大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运...

安卓开发-app异常退出的善后工作->UncaughtExceptionHandler

app难免会遇到异常退出。此时,可以使用UncaughtExceptionHandler来处理。看代码: package comz; import java.lang.Thread.Uncaugh...
  • imzoer
  • imzoer
  • 2013-08-31 14:54
  • 2375

Android Thread.UncaughtExceptionHandler捕获

在Java 的异常处理机制中: 如果抛出的是Exception异常的话,必须有try..catch..进行处理,属于checked exception。 如果抛出的是RuntimeExceptio...

android 中处理崩溃异常并重启程序

有时候由于测试不充分或者程序潜在的问题而导致程序异常崩溃,这个是令人无法接受的,在android中怎样捕获程序的异常崩溃,然后进行一些必要的处理或重新启动 应用这个问题困恼了我很久,今天终于解决...

Android初学------程序发生异常重启demo

public class CrashHandler implements UncaughtExceptionHandler { private static CrashHandler mC...

android 中处理崩溃异常并重启程序

android 中处理崩溃异常并重启程序有时候由于测试不充分或者程序潜在的问题而导致程序异常崩溃,这个是令人无法接受的,在android中怎样捕获程序的异常崩溃,然后进行一些必要的处理或重新启动 应...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)