捕获一个出现未被捕获异常

import android.os.Build;
import android.os.Looper;
import android.os.SystemClock;
import android.util.Log;
import android.widget.Toast;

公共类CrashHandler实现Thread.UncaughtExceptionHandler {

    public Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler; //系统默认的未捕获异常的处理器

    //懒汉式:
    private CrashHandler(){};

    private static CrashHandler instance = null;

    public static CrashHandler getInstance(){
        if(instance == null){
            instance = new CrashHandler();
        }

        返回实例;
    }


    public void init(){
        defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
        //将当前的类,作为出现未捕获异常时的处理类.Thread.setDefaultUncaughtExceptionHandler
        (this);
    }

    //当程序执行过程中,一旦出现未被捕获的异常时,即调用如下的回调方法
    @覆盖
    公共无效uncaughtException(线程线程,Throwable的前){
// Log.e( “TAG”,“出现异常了!异常信息为:“+ ex.getMessage());
        //
        新闻Thread(){
            public void run(){
                // android系统中,默认情况下,线程是不可以开启Looper进行消息的处理的,除非是主线程
                .Looper.prepare();
                // Toast的操作属于更新界面的操作,必须放在主线程中执行
                Toast.makeText(UIUtils.getContext(),“亲,出现异常了!店小二正在努力修复”,Toast.LENGTH_SHORT).show();
                Looper.loop();
            }
        }。开始();

        //收集用户出现的异常信息,并发送给后台
        collectionException(前);


        SystemClock.sleep(2000);

        //移除栈空间中所有的activity
        ActivityManager.getInstance().removeAll();
        //结束当前的进程
        android.os.Process.killProcess(android.os.Process.myPid());
        //结束当前的虚拟机的执行
        System.exit(0);

    }

    private void collectionException(Throwable ex) {

        final String exception = ex.getMessage();
        //收集用户手机的设备信息
        final String message = Build.DEVICE +“:”+ Build.MODEL +“:”+ Build.PRODUCT +“:”+ Build.VERSION.SDK_INT;
        
        //模拟联网操作
        new Thread(){
            public void run(){
                Log.e(“TAG”,“exception =”+ exception +“,message =”+ message);
        }
        }。开始();
            
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值