Android中整体异常的捕获

       在Android应用程序运行过程中,可能会出现一些bug,有些bug解决起来非常简单,直接用工具调试就可以了。但是当一款app已经上线了,在用户运行过程中出现那种偶然的bug,解决起来显然就没那么方便。所以就需要我们在发布App之前,对应用程序做一个整体的处理。当程序运行过程中出现任何bug,都可以先把bug信息存放到内存卡中。等到了一定的时候可以上传回来。

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.Thread.UncaughtExceptionHandler;

import android.app.Application;
import android.os.Environment;


public class MobileSafeApplication extends Application {
 //Called when the application is starting当应用程序被开启的时候调用
 //before any other application objects have been created
 @Override
 public void onCreate() {
  //老母子的方法。 基地
  //重新系统的异常处理器
  Thread.currentThread().setUncaughtExceptionHandler(new MyExceptionHander());
  super.onCreate();
 }
 
 private class MyExceptionHander implements UncaughtExceptionHandler{
  @Override
  public void uncaughtException(Thread thread, Throwable ex) {
   //留下了 留下遗嘱的时间
   System.out.println("发生了异常,但是被我们给捕获了。。");
   try {
    StringWriter wr = new StringWriter();
    PrintWriter pw = new PrintWriter(wr);
    ex.printStackTrace(pw);
    File file = new File(Environment.getExternalStorageDirectory(),"error.log");
    FileOutputStream fos = new FileOutputStream(file);
    fos.write(wr.toString().getBytes());
    fos.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
   //专注自杀的方法,就是杀死自己的进程, 早死早超生
   android.os.Process.killProcess(android.os.Process.myPid());
  }
 }
}

你可能感兴趣的:(Android中整体异常的捕获)