Android убьет процесс, если он находится в фоновом режиме, и ОС решит, что ему нужны ресурсы (ОЗУ, ЦП и т.д.). Мне нужно смоделировать это поведение во время тестирования, чтобы я мог убедиться, что приложение работает правильно. Я хочу, чтобы иметь возможность сделать это автоматическим способом, чтобы я мог проверить, работает ли приложение правильно, когда это происходит, а это значит, что мне придется тестировать это в каждом действии и т.д.
Я знаю, как убить мой процесс. Это не проблема. Проблема в том, что когда я убиваю свой процесс (используя DDMS, adb shell kill
, Process.killProcess()
и т.д.), Android не перезапускает его так же, как если бы Android-ОС убила его сама.
Если ОС Android убьет этот процесс (из-за требований к ресурсам), когда пользователь вернется в приложение Android, он воссоздает процесс, а затем воссоздает верхнюю активность в стеке действий (вызов onCreate()
).
С другой стороны, если I убивает процесс, Android предполагает, что активность в верхней части стека действий была плохой,, поэтому он автоматически воссоздает процесс а затем удаляет верхнюю активность из стека активности и воссоздает активность, которая была под верхней активностью (вызов onCreate() `). Это не то поведение, которое я хочу. Я хочу, чтобы такое же поведение, как когда Android убивает процесс.
Просто для объяснения наглядно, если мой стек активности выглядит так:
ActivityA -> ActivityB -> ActivityC -> ActivityD
Если Android убивает процесс, и пользователь возвращается к приложению, Android воссоздает процесс и создает ActivityD.
Если я убью этот процесс, Android воссоздает процесс и создаст ActivityC.