Индуцирование ActivityManager на «Больше не хочу» для тестирования

#android

#Android

Вопрос:

Я пытаюсь проверить, как мое приложение обрабатывает уничтожение Android ActivityManager (а затем перезапускается из-за аварийных событий). Другими словами, я хочу принудительно отправить сообщение:

 I/ActivityManager(  333): No longer want com.myname.myapp (pid 4444): hidden #22
  

Есть ли способ надежно заставить ActivityManager «Больше не хотеть» мое приложение?

Несколько приемов, которые я знаю для завершения процессов (однако цель этого вопроса — найти что-то, чтобы вызвать ActivityManager метод «Больше не хочу»).

  • Используя управление приложениями, нажмите кнопку «Принудительная остановка».
    Проблема в том, что, похоже, он не всегда ведет себя так же, как метод ActivityManager «Больше не хочу».
  • Запускайте множество приложений для загрузки памяти.
    Проблема в том, что это ненадежно и отнимает много времени. Иногда я могу запускать множество приложений, и я не вижу ни звука ActivityManager .
  • OS API killBackgroundProcesses() .
    Проблема в том, что было неясно, будет ли явный вызов killBackgroundProcesses() вести себя точно так же, как метод ActivityManager «Больше не хочу».

Ответ №1:

В более новой версии Android есть опция «Не сохранять действия». После выбора этого каждое действие уничтожается, как только пользователь покидает действие. Например, у нас есть действия A и B. Нормальный поток

  • Действие A запускает действие B

После выбора Не сохранять действия

  • Действие A запускает действие B
  • B -> onCreate , A -> onDestroy (обратите внимание, что A не вызывает finish после запуска действия B)
  • Нажатие кнопки «Назад» возвращает вас к действию A