Я думаю, что мои идеи о жизненном цикле деятельности и связках
немного смущены, вы можете мне помочь?
Предположим, что пользователь открывает действие A с главного экрана,
действие A «вызывает» действие B , которое заполняет экран.
В этом событии onSaveInstanceState()
вызывается для действия A , затем onPause()
и onStop()
.
Поскольку в настоящее время в системе запущено слишком много приложений,
andorid решает прекратить процесс размещения активности A .
Когда пользователь возвращается к занятию A , onCreate () вызывается как мы можем
используйте пакет (установленный во время последнего вызова onSaveInstaceStae ()) для восстановления состояния.
затем onStart()
, onRestoreInsanceState()
и onResume()
называются
я прав?
Затем предположим, что пользователь нажимает клавишу «Назад» для выхода из действия A
onPause()
, onStop()
и onDestory()
вызываются последовательно при мероприятии A (хотя вызов onDestroy()
может быть отложен)
onSaveInsanceState()
не следует вызывать в этом сценарии.
Когда пользователь снова открывает действие A позже, тогда пакет
передано onCreate () равно нулю, верно?
Теперь предположим, что пользователь поворачивает экран
onSaveInsanceState()
, OnPause()
, OnStop()
, OnDestroy()
называются
затем onCreate()
с набором, установленным последним вызовом на onSaveInsanceState()
,
а затем onStart () и onRestore ().
я прав?
Я думаю, что:
когда пользователь создает действие, пакет, переданный в onCreate()
, всегда имеет значение null, а onRestoreState()
никогда не вызывается, но когда система создает его, например, когда он завершил действие из-за нехватки памяти или из-за событие поворота, переданный пакет является тем, который установлен последним вызовом onSaveInstanceState ().
Правильно ли мое предположение?
спасибо и извините за мой плохой английский.
P.S. : Я думаю, что onRestoreInstanceState()
передается так же, как и onCreate()
, но обычно состояние восстанавливается с помощью onCreate()
.