Android Fabric - 以自定义间隔发送捕获的异常
Posted
技术标签:
【中文标题】Android Fabric - 以自定义间隔发送捕获的异常【英文标题】:Android Fabric - send Caught Exceptions at custom interval 【发布时间】:2016-07-13 09:05:52 【问题描述】:根据 Fabric 文档Fabric doc 减少用户流量,捕获的异常仅在应用启动时发送 -
Crashlytics 在专用后台线程上处理异常,因此对您的应用的性能影响很小。为了减少您的用户的网络流量,Crashlytics 将记录的异常批处理在一起,并在应用下次启动时发送。
try
myMethodThatThrows();
catch (Exception e)
Crashlytics.logException(e);
// handle your exception here!
但是对于这个特定的应用程序,该应用程序将始终打开,并且不打算重新启动。所以问题是-
如何强制在一段时间后或某个事件时发送日志?
【问题讨论】:
【参考方案1】:来自 Fabric 的 Mike。
目前,我们的 SDK 不提供从正在运行的 android 应用手动刷新或推送日志的方法。记录的异常会在应用重新启动时发送。
【讨论】:
你知道串行发送日志的限制吗?我已经发送了两个间隔为 3 秒的 Crashlytics.logException(e),但最后一次出现在 Fabric 控制台中。 快速发送的日志应该不会出现任何问题。我建议创建一个新的 SO 帖子或在 TwitterCommunity 上提问。【参考方案2】:我创建了一些简单的解决方案。现在报告在重新启动应用程序后发送。如果用户不会重新启动应用程序因为 收到错误怎么办?有可能。
所以如果我们想在关闭应用后发送日志,我们需要创建简单的“粘性”服务。
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 将发送记录的异常。
【讨论】:
以上是关于Android Fabric - 以自定义间隔发送捕获的异常的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 wordpress 以自定义表单提交之前获取图像 url 并发送邮件?
Azure Service Fabric - 如何配置容器被强制终止之前的时间间隔