【第22期】观点:IT 行业加班,到底有没有价值?

android 捕捉app错误信息

原创 2013年12月05日 11:51:19

定义MyCrashHandler类,该类实现java.lang.Thread.UncaughtExceptionHandler接口。

import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.Thread.UncaughtExceptionHandler;

import org.json.JSONException;
import org.json.JSONObject;


import android.content.Context;
import android.os.Build;
import android.os.Looper;

public class MyCrashHandler implements UncaughtExceptionHandler {
    private static MyCrashHandler myCrashHandler;
    private Context context;
   

    private MyCrashHandler() {

    }

    public static synchronized MyCrashHandler getInstance() {
        if (myCrashHandler != null) {
            return myCrashHandler;
        } else {
            myCrashHandler = new MyCrashHandler();
            return myCrashHandler;
        }
    }

    public void init(Context context) {
        this.context = context;
    }

    public void uncaughtException(Thread thread, final Throwable arg1) {
        
            new Thread() {
                @Override
                public void run() {
                    super.run();
                    Looper.prepare();
                    String errorinfo = getErrorInfo(arg1);
                   //TODO  处理errorinfo


                    Looper.loop();
                }

            }.start();
    //Thread.sleep()是为了等待上面处理errorinfo的线程结束。
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        android.os.Process.killProcess(android.os.Process.myPid());
        
    }

   

    private String getErrorInfo(Throwable arg1) {
        Writer writer = new StringWriter();
        PrintWriter pw = new PrintWriter(writer);
        arg1.printStackTrace(pw);
        pw.close();
        String error = writer.toString();
        return error;
    }

}
使用MyCrashHandler捕获异常

    MyCrashHandler handler = MyCrashHandler.getInstance();
    handler.init(context.getApplicationContext());
    Thread.setDefaultUncaughtExceptionHandler(handler);//将handler设置为默认



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Android 对程序异常崩溃的捕捉

[java] view plaincopyprint? 以下为异常捕捉处理代码:   [java] view plaincopyprint? import java...

android 捕捉 异常 崩溃 捕捉 crash

转载时请记得标明源地址:http://my.oschina.net/lijindou/blog demo  的 源码 地址:http://pan.baidu.com/s/1mhDsJqg ...

Android_APP级异常捕获实现方式

描述:App级异常捕获,并记录下CrashLog到文件。 以下,代码。 在Application的,onCreate中,初始化自定义的CrashHandler import android.app.A...

详解Android全局异常的捕获处理

这篇文章主要为大家介绍了Android全局异常的捕获处理,为什么要进行捕获处理,如何进行捕获处理,想要了解的朋友可以参考一下 在Android开发中在所难免的会出现程序crash,俗称崩溃。用户的随...

Android 全局异常捕获

今天就来说说作为程序猿的我们每天都会遇到的东西bug,出bug不可怕可怕的是没有出bug时的堆栈信息,那么对于bug的信息收集就显得尤为重要了,一般用第三方bugly或者友盟等等都能轻易收集,但是由于...

Android自定义捕获Application全局异常

大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了...

Android 捕捉app系统中未处理的异常

一:为什么要处理? 其实我们都知道,在开发过程中,自己的app系统或许有许多隐藏的异常,自己没有捕捉到,那么关于异常的捕捉,这是相当重要的,如果系统发生崩溃,那么至少也可以让系统挂在系统之内,不会...

Android 程序异常崩溃的捕捉 前后端

这是一篇笔记,也有参考别人的,也供别人参考,代码有详细注释 参考文章: [转]Android自定义捕获Application全局异常  http://www.cnblogs.com/freeliver...

Android_APP级异常捕获实现方式

描述:App级异常捕获,并记录下CrashLog到文件。以下,代码。在Application的,onCreate中,初始化自定义的CrashHandlerimport android.app.Appl...

Android报错信息

final File to = new File(file.getAbsolutePath() + System.currentTimeMillis()); file.renameTo(to); to...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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