import android.app.Application;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
public class MyApplication extends Application {
StringBuilder stringBuilder = new StringBuilder();
@Override
public void onCreate() {
super.onCreate();
// 初始化全局异常捕获
Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler(this));
}
private void addMessage(String key, Object obj) {
// 对数组做一下处理
if (obj instanceof String[]) {
String[] list = (String[]) obj;
ArrayList<String> array = new ArrayList<>(Arrays.asList(list));
stringBuilder.append(key).append("=").append(array.toString()).append("\n");
}
}
private class MyUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
private Application application;
public MyUncaughtExceptionHandler(Application application) {
this.application = application;
}
@Override
public void uncaughtException(Thread t, Throwable e) {
// 生成路径,保存至/Android/data/包名,无需读写权限
try {
File root = MyApplication.this.getExternalFilesDir("log");
String filename = new Date().getTime() + ".txt";
File file = new File(root, filename);
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
String trace = sw.toString();
FileOutputStream fos = new FileOutputStream(file);
fos.write(trace.getBytes());
fos.flush();
fos.close();
}catch (Exception aa){
aa.printStackTrace();
}
}
}
}
04-07
3671
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-10
3760
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-18
07-18
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交