Как вы, возможно, знаете, начиная с Android 8, существуют ограничения на выполнение фона . И есть еще один очень популярный переполнение стека вопрос по этой теме. Я пришел к этой теме, когда получил исключение в своем коде. У меня есть несколько широковещательных приемников, и когда я их ловлю, я запускаю службу, которая выполняет небольшую работу в фоновом потоке. Я удалил этот код из широковещательных приемников, чтобы не блокировать поток пользовательского интерфейса и не вызывать ANR. Однако иногда приложение будет работать в «фоновом» режиме, и я получу исключение
Java.Lang.IllegalStateException: Not allowed to start service Intent .... app is in background
Что в порядке и ожидается из-за пределов фонового выполнения.
Однако я не могу воспроизвести это исключение на 100%, это происходит только иногда, наиболее вероятно, когда ОС решает, что мое приложение больше не находится в фоновом режиме, и выводит меня из белого списка, и я получаю это исключение, как только я пытаюсь запустить службу.
У меня вопрос: есть ли команда adb или опция разработчика, которая будет в основном имитировать состояние приложения, переходящего в фоновый режим, и поможет на 100% воспроизвести эту проблему? Мне нужно это для отладки нескольких фоновых сценариев использования и чтобы убедиться, что приложение работает, как и ожидалось, во всех случаях, не догадываясь.