【问题标题】:ACRA not sending queued crash reportACRA 未发送排队的崩溃报告
【发布时间】:2016-03-16 09:46:24
【问题描述】:

我正在使用 ACRA 进行错误报告,当互联网不可用并且它们是一些错误时,它会排队发送但不会被触发,除非它们是新错误。 他们有什么方法可以在互联网可用时立即强制触发?

【问题讨论】:

    标签: android acra


    【解决方案1】:

    简短的回答是否定的。

    长答案是

    1) 不,因为监听网络状态需要一个 BroadcastListener 和一个大多数人不太可能想要授予的权限。如果您想提供拉取请求,那么我很乐意对其进行审核。但它应该只启用如果权限已被授予。

    2) 不会,但会在您的应用重新启动且您有互联网覆盖时发送。

    从统计的角度考虑崩溃报告,您会发现通常并不重要。

    【讨论】:

    • 不幸的是我不属于一般:我将 ACRA 用于独立服务,并且该服务的生命周期不在我的控制之下(它可能总是在运行)。是否有一种简单的方法来集成触发器,例如通过我可以定期调用的静态方法或 Intent 或当我的服务检测到连接更改时?我可以吗?手动使用SenderServiceStarter
    • @William 对此有何更新?是否可能已经有一种方法可用于触发报告的发送?
    • 抱歉@KapiteinWitbaard 我不再维护#ACRA,所以我没有关注这个领域的发展。
    【解决方案2】:

    当互联网可用时,您可以使用为捕获的异常或意外的应用程序状态发送报告而没有任何异常(使用接收器检查并使用以下方式)

    您还可能希望您的应用程序发送报告而不抛出任何异常,因为您知道您的应用程序处于意外状态。

    ACRA.getErrorReporter().handleException(caughtException);
    

    如果您需要为应用程序配置的任何通知模式添加静默跟踪报告,您也可以使用:

    ACRA.getErrorReporter().handleSilentException(caughtException);
    

    查看documentation了解更多详情

    【讨论】:

    • 上述方法的问题是,只要互联网可用,我就必须报告空异常或虚拟异常,这将在没有任何实际原因的情况下增加 Hockeyapp 上的异常计数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 2013-12-19
    相关资源
    最近更新 更多