Может ли кто-нибудь привести мне пример, который используется onResume()
в Android?
Кроме того, если я хочу перезапустить действие в конце выполнения другого, какой метод выполняется - onCreate()
или onResume()
?
И если я хочу обновить данные, как мне их вставить onResume()?
Ответы:
Для любого перезапускаемого Activity сначала выполняется метод onResume () .
Чтобы использовать этот метод, сделайте следующее:
@Override public void onResume(){ super.onResume(); // put your code here... }
источник
При перезапуске приложение вызовет
OnCreate()
.Продолжение работы приложения, когда оно приостановлено, вызовет звонок
OnResume()
. Из официальных документов по адресу https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle вот диаграмма жизненного цикла активности.источник
Лучший способ понять это - переопределить все методы LifeCycle в вашей деятельности и разместить точку останова (при проверке в эмуляторе) или журнал в каждом из них. Вы узнаете, кому когда звонят.
Так же, как спойлер,
onCreate()
сначала вызывается, затем, если вы приостановили действие, перейдя на главный экран или запустив другое действие,onPause()
вызывается. Если ОС тем временем уничтожает активность,onDestroy()
вызывается. Если вы возобновите работу приложения, а приложение уже было уничтожено, оноonCreate()
будет вызвано или жеonResume()
будет вызвано.Изменить: я забыл об этом
onStop()
, его вызывают раньшеonDestroy()
.Выполните упомянутое мной упражнение, и вы лучше поймете.
источник
Большинство предыдущих ответов хорошо объясняют, как, почему и когда использовать,
onResume()
но я хотел бы добавить кое-что о воссоздании вашегоActivity
.Ответ:
onCreate()
однако, принимая решение фактически воссоздать его, вы должны спросить себя, сколько из этогоActivity
нужно воссоздать. Если данные в адаптер, скажем , для списка, то вы можете позвонитьnotifyDataChanged()
на ,adapter
чтобы заселитьadapter
и не придется перерисовывать все.Кроме того , если вам просто нужно обновить определенное ,
views
но не все , то это может быть более эффективным , чтобы позвонитьinvalidate()
наview
(с) , что необходимо обновить. Это только перерисовывает ихviews
и, возможно, позволит вашему приложению работать более плавно. Я надеюсь это тебе поможет.источник
onResume()
- один из методов, вызываемых на протяжении жизненного цикла активности .onResume()
является аналогом,onPause()
который вызывается каждый раз, когда действие скрыто от просмотра, например, если вы запускаете новое действие, которое его скрывает.onResume()
вызывается, когда действие, которое было скрыто, возвращается для просмотра на экране.Вы спрашиваете, какой метод используется для перезапуска действия.
onCreate()
вызывается при первом создании действия. На практике большинство мероприятий сохраняются в фоновом режиме через рядonPause()
иonResume()
вызовы. Действие действительно «перезапускается» только в томonRestart()
случае, если оно сначала полностью остановлено вызовом,onStop()
а затем возвращается к жизни. Таким образом, если вы на самом деле не прекращаете деятельность сonStop()
ним, скорее всего, вы будете использоватьonResume()
.Прочтите документ по Android по указанной выше ссылке, чтобы лучше понять взаимосвязь между различными методами образа жизни. Независимо от того, какой метод жизненного цикла вы в конечном итоге используете, общий формат одинаков. Вы должны переопределить стандартный метод и включить свой код, то есть то, что вы хотите, чтобы действие выполнялось в этот момент, в закомментированный раздел.
@Override public void onResume(){ //will be executed onResume }
источник
Еще раз просмотрите справочник по жизненному циклу действий Android. Есть красивая картинка и таблица, показывающая, какие методы вызываются. ссылка Ссылка google
https://developer.android.com/reference/android/app/Activity.html
источник
КОТЛИН
Для любого перезапускаемого Activity сначала выполняется метод onResume ().
Чтобы использовать этот метод, сделайте следующее:
override fun onResume() { super.onResume() // your code here }
источник
После запуска действия выполняется его перезапуск (onRestart () до onStart ()) или пауза (onPause ()), вызывается onResume (). Когда действие находится в состоянии onResume (), оно готово к использованию пользователем приложения.
Я немного изучил жизненный цикл действия, и вот мое понимание этой темы: если вы хотите перезапустить действие (A) в конце выполнения другого, может быть несколько разных случаев.
Другое действие (B) было приостановлено и / или остановлено или уничтожено, и действие A, возможно, было приостановлено (onPause ()), в этом случае действие A вызовет onResume ()
Действие B было приостановлено и / или остановлено или уничтожено, действие A, возможно, было остановлено (onStop ()) из-за памяти, в этом случае действие A сначала вызовет onRestart (), затем onStart (), затем onResume ()
Действие B было приостановлено и / или остановлено или уничтожено, действие A было уничтожено, программист может вызвать onStart () вручную, чтобы сначала запустить действие, затем onResume (), потому что, когда действие находится в состоянии уничтожения, действие имеет не запускается, и это происходит до того, как действие будет полностью удалено. Если действие удалено, действие необходимо создать заново. Вызов onStart () вручную, я думаю, потому, что если действие не запущено и оно создано, onStart () будет вызываться после onCreate ().
Если вы хотите обновить данные, создайте функцию обновления данных и поместите функцию внутри onResume (). Или поместите функцию loadData внутри onResume ()
Жизненный цикл лучше понять с помощью диаграммы жизненного цикла Activity.
источник