我们处于这种情况下,我们的客户95%的时间离线使用我们的移动应用程序。在工作结束时,当他们回到办公室时,他们会在具有网络连接的情况下将所有数据与我们的服务器同步。
我们为ACRA设置了AcraHttpSender插件,尝试直接向我们发送崩溃报告,但这通常会失败,因为他们正在离线使用应用程序,而ACRA则存储了报告。
据我了解,待处理的报告仅由ACRA通过ACRA.init通过应用程序重新启动发送。问题是用户没有理由在工作日结束时(具有网络连接性)重新启动应用程序。我必须强调,用户是完全的技术素养,我们的客户向我们表明了这一点。
因此,我们真的需要能够告诉ACRA在短时间内可用的网络连接中向我们发送任何未决的崩溃报告。没有任何形式的用户交互。我在想也许在我们主要活动的onCreate函数中。
然而,我一直在查看文档,并且一段时间以来其他人都在问相同的问题,但是没有发现任何明显的问题。这可能吗?
正如@CommonsWare在评论中所述,AdvancedSenderScheduler是必经之路。
示例用法:
implementation "ch.acra:acra-advanced-scheduler:5.5.1"
@AcraScheduler(requiresNetworkType = JobRequest.NetworkType.UNMETERED,
requiresBatteryNotLow = true)
如果您对AdvancedSenderScheduler
选项不满意,也可以注册自己的SenderScheduler,但这很少有必要。