Android监测到任何地方抛出的未扑获到的异常,在Application

简介: protected static Context instance;@Overridepublic void onCreate() { super.


 
 
protected static Context instance;

@Override
public void onCreate() {
    super.onCreate();
instance = this;
Thread.setDefaultUncaughtExceptionHandler(restartHandler); // 程序崩溃时触发线程  以下用来捕获程序崩溃异常
}
// 创建服务用于捕获崩溃异常
private Thread.UncaughtExceptionHandler restartHandler = new Thread.UncaughtExceptionHandler() {
    public void uncaughtException(Thread thread, Throwable ex) {
        Logger.d("------------------", "接受到异常");
        if (!handleException(ex)) {// 如果用户没有处理则让系统默认的异常处理器来处理
            Logger.d("-----------", "系统异常");
            uncaughtException(thread, ex);
        } else {
            Logger.d("------------", "自己处理");
            try {
                Thread.sleep(1100);
            } catch (InterruptedException e) {
                Log.e("slicejobs", "error : ", e);
            }

            Intent intent = new Intent(instance, MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            instance.startActivity(intent);
            android.os.Process.killProcess(android.os.Process.myPid());  //结束进程之前可以把你程序的注销或者退出代码放在这段代码之前
        }
    }

};


/**
 * 自定义错误处理,收集错误信息 发送错误报告等操作均在此完成.
 *
 * @param ex
 * @return true:如果处理了该异常信息;否则返回false.
 */
private boolean handleException(Throwable ex) {
    if (ex == null) {
        return false;
    }
    // 使用Toast来显示异常信息
    new Thread() {
        @Override
        public void run() {
            Looper.prepare();
            Toast.makeText(CONTEXT.getApplicationContext(),"很抱歉,程序出现异常,1秒后重启.", Toast.LENGTH_SHORT).show();
            Looper.loop();
        }
    }.start();
    return true;
}

目录
相关文章
|
5月前
|
数据库 Android开发
Android Studio开发之应用组件Application的讲解及实战(附源码,通过图书管理信息系统实战)
Android Studio开发之应用组件Application的讲解及实战(附源码,通过图书管理信息系统实战)
293 0
|
4月前
|
开发工具 Android开发
android studio build异常
android studio build异常
35 3
|
5月前
|
Android开发
jack-server导致 Android 编译 出现异常
jack-server导致 Android 编译 出现异常
104 6
|
5月前
|
Android开发
android捕获全局异常,并对异常做出处理
android捕获全局异常,并对异常做出处理
62 4
|
5月前
|
存储 安全 文件存储
Android OTA升级后输入法异常和应用丢失的分析
Android OTA升级后输入法异常和应用丢失的分析
73 1
|
5月前
|
Android开发
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
207 0
|
5月前
|
缓存 Android开发
Android——application全局类的使用
Android——application全局类的使用
|
数据库 Android开发 数据库管理
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常
330 0
|
5月前
|
缓存 Java 数据库
Android 性能优化: 请解释ANR(Application Not Responding)是什么,如何避免它?
Android 性能优化: 请解释ANR(Application Not Responding)是什么,如何避免它?
97 0
|
11月前
|
Android开发
[√]Android 通过adb内存监测方法
[√]Android 通过adb内存监测方法
514 1
下一篇
无影云桌面