Android Fabric - 以自定义间隔发送捕获的异常

时间:2016-07-13 09:05:52

标签: android crashlytics twitter-fabric crashlytics-android

根据Fabric文档Fabric doc减少用户流量,只有在应用启动时才会发送捕获的异常 -

  

Crashlytics在专用后台线程上处理异常,因此对您的应用程序的性能影响很小。为了减少用户的网络流量,Crashlytics将记录的异常一起批处理,并在下次启动应用程序时将其发送。

try {
  myMethodThatThrows();
} catch (Exception e) {
  Crashlytics.logException(e);
  // handle your exception here!
}

但是对于这个特定的应用程序,该应用程序将始终打开,并不打算重新启动。所以问题是 -

如何强制在一段时间后或某些事件中发送日志?

2 个答案:

答案 0 :(得分:1)

Mike来自Fabric。

目前,我们的SDK不提供从正在运行的Android应用程序手动刷新或推送日志的方法。在重新启动应用程序时会发送记录的异常。

答案 1 :(得分:0)

我创造了某种简单的解决方案。现在,报告将在重新启动应用后发送。如果用户因为错误而无法重新启动应用,该怎么办?这是可能的。

因此,如果我们想在关闭应用之后发送日志,我们需要创建简单的"粘贴"服务。

public class ReportService extends Service {
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        System.err.println("ReportService refresh");
        return START_STICKY;
    }
}

然后让startService(new Intent(context, ReportService.class));行放在主要活动的onCreate方法中。

现在,当应用关闭时,服务将再次启动代码 - Crashlytics将发送记录的异常。