客户端是否可以知道应用程序之前启动时是否发生过 ANR?
例如,用户使用某个应用程序10天,第10天发生ANR并关闭该应用程序,第11天用户再次打开该应用程序,此时是否可以知道该应用程序发生了ANR当前设备在其生命周期的任何时间点都会出现问题吗?
在 Android 11 及更高版本上,您可以致电getHistoricalProcessExitReasons()了解ActivityManager有关进程终止的信息,包括 ANR。
val reasons =
context.getSystemService(ActivityManager::class.java)?.getHistoricalProcessExitReasons(null, 0, 0).orEmpty()
Run Code Online (Sandbox Code Playgroud)
reasons将是一个List<ApplicationExitInfo>. reasonan 上的属性是ApplicationExitInfo映射Int到...上的一系列常量,ApplicationExitInfo例如ApplicationExitInfo.REASON_ANR,这意味着先前的进程已因 ANR 而终止。