3

根据 Fabric 文档Fabric doc to reduce user traffic,捕获的异常仅在应用程序启动时发送 -

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

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

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

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

4

2 回答 2

1

来自 Fabric 的 Mike。

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

于 2016-07-14T15:32:31.120 回答
1

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

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

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 将发送记录的异常。

于 2018-03-26T10:13:47.000 回答