在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());
}
}
}