gpt4 book ai didi

android - 如果抛出很多异常,ACRA 会让它变得无聊

转载 作者:行者123 更新时间:2023-11-29 18:05:38 25 4
gpt4 key购买 nike

我使用 ACRA在我的安卓应用程序中。它非常有用,但有时很无聊。

有时,后台会同时运行多个异步任务。对于季节,所有这些都失败了(例如无法连接到互联网)。 ACRA会反复显示toast信息,拒绝退出。

是否可以让ACRA只捕获第一个异常?或者只显示一次 toast 消息?


更新

添加演示:https://github.com/freewind/android-acra-multi-reports

此项目中有 4 个 Activity 。最后一个将抛出异常,之前的每个 Activity 都会在 onActivityResult 中抛出异常。可以看到ACRA在退出前会报很多次。

最佳答案

在我看来,您实际上应该捕获一些异常,不要让所有异常冒泡。

ACRA 在主线程上注册了一个Thread.UncaughtExceptionHandler。这里所有未捕获的异常(正如处理程序的名称所暗示的那样)都得到处理。通常这意味着应用程序即将崩溃,ACRA 将发挥其报告魔力。 ACRA 使用多个线程本身来完成它的工作,并会等到一切都完成后才会真正终止应用程序的进程。所以我猜想,如果出现大量异常,ACRA 正忙于处理它们,以至于它不会到达终止进程的地步。

您可以注册自己的 UncaughtExceptionHandler 实现来捕获异常并决定何时将它们交给 ACRA 以及何时做其他事情。如果我没记错的话,ACRA 将调用在 ACRA 初始化之前注册的 UncaughtExceptionHandler。因此,您也可以尝试链接这些处理程序。

关于android - 如果抛出很多异常,ACRA 会让它变得无聊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com