即可
我需要存储崩溃日志并将其发送到服务器。我可以在崩溃日志存在之前将其保存在首选项中,但问题是它会重新启动应用程序并且不向用户显示默认崩溃消息。
我希望用户的崩溃流程正常。
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);
,它会在崩溃时重新启动应用程序。
编辑
保存日期到文件((
SharedPreferences sharedPreferences= context.getSharedPreferences(CRASH_LOG, Context.MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = sharedPreferences.edit();
prefsEditor.putString(STACK_TRACE, data);
prefsEditor.apply();
使用Fabric获取崩溃报告以及更多内容,例如安装或事件等。
它会自动将崩溃报告发送到服务器,并通过电子邮件通知您。
易于实现,只需要在此处包含SDK
请查看 https://github.com/ligi/tracedroid - 它可以为您收集崩溃日志,您可以编写自己的发送模块