我需要存储崩溃日志并将其发送到服务器。我可以在崩溃日志存在之前首先保存它,但问题是它重新启动应用程序并且不向用户显示默认的崩溃消息。
我希望用户的崩溃流程正常。
public void registerCrash(){
Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler()
{
@Override
public void uncaughtException (Thread thread, Throwable e)
{
handleUncaughtException (thread, e);
}
});
}
public void handleUncaughtException (Thread thread, Throwable e)
{
thread.getStackTrace();
saveDataToFile(e.toString());
System.exit(-1);
}
如果我更改System.exits(0)
,它会突然崩溃,并且不保存任何登录文件,并且System.exit(-1);
会在崩溃时重新启动应用程序。
修改
saveDateToFile()
SharedPreferences sharedPreferences= context.getSharedPreferences(CRASH_LOG, Context.MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = sharedPreferences.edit();
prefsEditor.putString(STACK_TRACE, data);
prefsEditor.apply();