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

Android Fabric-以自定义间隔发送捕获的异常,android,crashlytics,twitter-fabric,crashlytics-android,Android,Crashlytics,Twitter Fabric,Crashlytics Android,根据减少用户流量的Fabric文档,捕获的异常仅在应用程序启动时发送- Crashlytics在专用后台线程上处理异常,因此对应用程序性能的影响最小。为了减少用户的网络流量,Crashlytics将记录的异常批处理在一起,并在下次应用程序启动时发送这些异常 但对于这个特定的应用程序,该应用程序将始终打开,并且不打算重新启动。所以问题是- 如何在一段时间后或在某个事件中强制发送日志?Mike来自Fabric 目前,我们的SDK不提供手动刷新或推送运行Android应用程序日志的方法。记录的异常会在

根据减少用户流量的Fabric文档,捕获的异常仅在应用程序启动时发送-

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

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


如何在一段时间后或在某个事件中强制发送日志?Mike来自Fabric


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

我已经创建了一些简单的解决方案。现在,重新启动应用程序后会发送报告。如果用户因为出错而不重新启动应用程序怎么办?这是可能的

所以,如果我们想在关闭应用程序后发送日志,我们需要创建简单的“粘性”服务

让我们放置
startService(新的意图(context,ReportService.class))行在主活动的
onCreate
方法中


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

您知道串行发送日志的限制吗?我已经发送了两个Crashlytics.logException(e),间隔3秒,但最后一个出现在Fabric控制台中。一起快速发送的日志应该不会出现任何问题。我建议在Twitter社区上创建一个新的SO帖子或提问。
try {
  myMethodThatThrows();
} catch (Exception e) {
  Crashlytics.logException(e);
  // handle your exception here!
}
public class ReportService extends Service {
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        System.err.println("ReportService refresh");
        return START_STICKY;
    }
}