Я вижу противоречивую документацию и дискуссию о том, что происходит, когда Android неактивен в памяти и шаги, предпринимаемые операционной системой для повторной заявки на память. В частности, удаляет ли Android при детализации активности/фрагмента или всего процесса?Зеркальность управления памятью Android - активность или процесс?
Например, если активность B запускается перед активностью A (и оба действия являются частью одного и того же приложения/процесса), может ли операция A быть убита ОС, а действие B - на переднем плане, а пользователь - взаимодействуя с Activity B (предположим: экран остается включенным, текущее приложение остается на переднем плане, не происходит изменения ориентации)?
Этот SO answer с 2011 года (от Dianne Hackborn от команды Android в Google) предполагает, что Android убивает зернистость процесса, а не активность.
На Android страницы разработчика на Recreating an Activity, он говорит:
Система также может уничтожить вашу деятельность, если она в настоящее время остановлена и не используется в течение длительного времени или на переднем плане деятельности требует больше ресурсов, так система должна отключить фоновые процессы для восстановления памяти.
Обратите внимание на двусмысленность: «система должна закрыть фоновые ПРОЦЕССЫ».
На Android страницы разработчика для onSaveInstanceState, он говорит:
Например, если активность B запускается перед активности А, и в какой-то точке активности А убивают, чтобы вернуть ресурсы, деятельность Завещание имеют возможность сохранить текущее состояние своего пользовательского интерфейса с помощью этого метода
После прочтения этих и многих других страниц документов и онлайн-обсуждения неясно, каков правильный ответ.
У меня также есть тот же вопрос относительно фрагментов: Можно ли убить фоновый фрагмент из-за низкой памяти, без полного его уничтожения?
Это имеет смысл. Я знаю, что Linux не имеет понятия о действиях, но я не был уверен, добавлен ли Android в способность убивать отдельные действия. Спасибо за разъяснения! –