使用Crashlytics在崩溃后重新启动应用程序

时间:2018-04-05 20:26:56

标签: android

使用Crashlytics崩溃后是否可以自动重启应用?遗憾的是,文档中没有关于该主题的内容。我定义了自己的异常处理程序,它正在重启应用程序,但是当我使用它时,不会发送崩溃日志。

1 个答案:

答案 0 :(得分:0)

在自定义异常处理程序中,您可以调用Craslytics.logException(exception);

public class MyExceptionHandler implements Thread.UncaughtExceptionHandler {

    @Override
    public void uncaughtException(Thread thread, Throwable exception) {
        //you should also log the exception to logcat
        Log.e(TAG, "UncaughtException", exception);

        try {
            //log to crashlytics
            Crashlytics.logException(exception);
        } catch (Exception e) {
            Log.d(TAG, "uncaughtException: Crashlytics not initialized, cannot send logs.");
        }
        //exit with error code 1 (0 is normal program termination, 
        //which here is not the case)
        System.exit(1);
    }
}

值得注意的是,Crashlytics.logError(...)将异常记录为"非致命"。因此,我通常将它们包装起来,以便将非致命异常与实际致命异常区分开来。

所以:

Crashlytics.logException(exception);

变为:

//wrap the original exception to your custom 'fatal' exception type.
FatalException fatalException = new FatalException(originalException);
//log with Crashlytics
Crashlytics.logException(fatalException);

来自开源应用here的示例。