您可能知道从Android 8开始有background execution limits。关于此主题,还有另一个非常流行的堆栈溢出question。当我在代码中收到异常时,便来到了这个主题。我有几个广播接收器,当我抓住它们时,我启动了一项服务,该服务在后台线程上执行少量工作。我已将该代码移出广播接收器,以确保不会阻塞UI线程且不会引起ANR。但是,有时应用程序将处于“后台”模式,我会收到异常
Java.Lang.IllegalStateException: Not allowed to start service Intent .... app is in background
这是可以接受的,并且由于后台执行限制而可以预期。 但是,我无法100%重现此异常,它仅在某些情况下发生,最有可能是在OS决定我的应用程序不再处于后台并将我从白名单中踢出,并且在我尝试启动服务时就得到了此异常。
我的问题是-是否有一个adb命令或开发人员选项可以基本上模拟应用程序进入后台的状况,并有助于100%重现此问题?我需要这样做来调试一些后台使用方案,并确保并证明应用程序在所有情况下均按预期工作,而无需猜测。