Требование заключается в том, что действие "A" не должно быть завершено.
Операция завершается с помощью вызова finish()
.Обычно это происходит, когда пользователь нажимает кнопку НАЗАД.
OnStop () действия «A» не вызывается, пока пользователь не переходит к действию «D», однако вызывается, когда действие «Е»вызывается.
Правильно.
Есть ли в любом случае, что мы можем поддерживать действие "А" в стеке действий?
Он «работает» в стеке активности (для любого разумного определения «работает») до тех пор, пока вы не вызовете finish()
, пользователь не нажмет BACK или процесс не будет завершен.onStop()
не влияет на это.
Является ли хорошим решением сохранить статическую ссылку на Activity в объекте Application, чтобы среда не убивала его?
Нет, потому что это не поможет.Действие будет оставаться в памяти до тех пор, пока вы не наберете finish()
, пользователь не нажмет BACK или процесс не прекратится.
Какие меры предосторожности я могу предпринять, чтобы "A" не был убит?
Не звоните finish()
.
Есть ли способ, которым я могу получить уведомление, если это будет убито фреймворком, чтобы я мог восстановить его?
Ваша деятельность будет вызываться с onDestroy()
, если она закончена.Это может произойти или не произойти, если процесс завершается, в зависимости от того, что вызвало завершение, и состояния системы в это время.