在Android ANR对话框中按"关闭应用程序",关闭并立即重新启动应用程序

Sot*_*nas 5 android android-anr-dialog forceclose

我面临一个奇怪的(在我看来)问题.我的应用程序很少产生ANR.我试图尽可能地减少它们,到目前为止我已经成功了.但是,当ANR对话框确实出现时,如果我(或任何用户)决定通过按"关闭应用程序"关闭应用程序而不是等待它获得响应,则应用程序关闭但立即重新启动显示与其相同的活动当ANR对话框显示时.

这很麻烦,因为当用户正常启动我的应用程序时,他/她通过了一系列活动,每个活动负责执行某些任务,创建一些对象等.当应用程序自动重新启动时,用户发现自己在当ANR对话框显示时,他的活动也没有发生,因此缺少某些必需的东西,因此我的应用程序崩溃了.可能是一个对象为null,一个int的值比它应该的值错,一些字符串可能是空的等等.确切的问题在这里并不重要.重要的是,应用程序没有经历用户打开时通常执行的一系列活动,设置在达到此活动之前需要的所有对象,变量等.

另一方面,如果我的应用程序在任何时候崩溃,我有一个UncaughtExceptionHandler以"干净的方式"关闭我的应用程序.相当于用户按下"概述"按钮,然后通过按"x"或向左/向右滑动来关闭应用程序.因此,如果用户想要再次使用该应用程序,他/她将再次启动它,应用程序将完成它应该执行的一系列活动,并且一切都按预期工作.然而,当出现ANR对话框时,我无法控制按"关闭应用程序"实际执行的操作...

或者我可以吗?

这是ANR对话框的正确行为还是我在这里遗漏了什么?有没有人经历过这个?在用户选择对话框中的"关闭应用程序"选项后,有什么方法可以让我的应用程序关闭并保持关闭状态?(我猜不是).

提前谢谢你,如果我遗漏了一些明显的东西,请尽量保持温和!:)

Kas*_* K. 1

看看这个

基本上,那个人想要完成的是记录未捕获的错误,正如您在帖子中所说的那样,您无法处理并利用这些日志来纠正应用程序中的不一致之处。

关闭应用程序通常会关闭应用程序,并且不应重新打开应用程序,但这完全取决于手机操作系统中的对话框实现,一些 OEM 对现有功能进行了更改,有时确实会造成混乱。

您还可以检查清单中的意图过滤器,以检查它们是否以某种方式进行干扰。