当应用程序不在前台时如何避免 ANR?

How to avoid ANR From an app when it is not in the foreground?

我正在尝试为我的应用程序在后台运行时应用程序无响应 (ANR) 错误找到解决方案。当我的应用程序不在前台时,我希望不会发生任何 ANR。 如何实现? 提前致谢。

来自 Google 文档:

Android 将在检测到以下情况之一时显示特定应用程序的 ANR 对话框:

  • 5 秒内没有对输入事件(例如按键或屏幕触摸事件)的响应。
  • BroadcastReceiver 未在 10 秒内完成执行。

之后一定不要对 UiThread/MainThread 执行 blocking/long 操作,即使应用程序在后台也是如此。