Ответ 1
Любая активность, которая перезапускается, имеет метод onResume(), выполняемый первым.
Чтобы использовать этот метод, сделайте это:
@Override
public void onResume(){
super.onResume();
// put your code here...
}
Кто-нибудь может дать мне пример, который использует onResume()
в Android?
Кроме того, если я хочу перезапустить действие в конце выполнения другого, какой метод выполняется - onCreate()
или onResume()
?
И если я хочу обновить данные, как мне поместить их в onResume()?
Любая активность, которая перезапускается, имеет метод 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
.
Я хочу знать, хочу ли я перезапустить активность в конце exectuion другого, какой метод выполняется вCreate() или onResume()
Ответ onCreate()
Однако при принятии решения о его повторном создании вы должны спросить себя, какая часть Activity
должна быть восстановлена. Если это данные в адаптере, скажем, для списка, вы можете вызвать notifyDataChanged()
на adapter
, чтобы повторно заполнить adapter
и не нужно перерисовывать все.
Кроме того, если вам просто нужно обновить определенные views
, но не все, то может быть более эффективным вызвать invalidate()
на view
(s), которые необходимо обновить. Это приведет только к изменению этих views
и, возможно, позволит вашему приложению работать более плавно. Я надеюсь это тебе поможет.
onResume()
является одним из методов, называемых в течение жизненного цикла деятельности. onResume()
является аналогом onPause()
, который вызывается в любое время, когда активность скрыта от представления, например. если вы начинаете новую деятельность, которая скрывает ее. onResume()
вызывается, когда скрытая активность возвращается к просмотру на экране.
Вы задаете вопрос, какой метод используется для перезапуска активности. onCreate()
вызывается, когда действие сначала создается. На практике большинство действий сохраняются в фоновом режиме с помощью серии вызовов onPause()
и onResume()
. Активность только "перезапущена" на onRestart()
, если она полностью полностью остановлена, вызвав onStop()
, а затем вернулась к жизни. Таким образом, если вы на самом деле не останавливаете действия с помощью onStop()
, вы, скорее всего, будете использовать onResume()
.
Прочитайте документ android в приведенной выше ссылке, чтобы лучше понять взаимосвязь между различными способами образа жизни. Независимо от того, какой метод жизненного цикла вы в конечном итоге используете в общем формате, тот же. Вы должны переопределить стандартный метод и включить свой код, т.е. То, что вы хотите, чтобы деятельность выполняла в этой точке, в разделе комментариев.
@Override
public void onResume(){
//will be executed onResume
}
Пересмотрите ссылку на Android Activity Lifecycle. Есть хорошая картинка и таблица, показывающая, какие методы вызываются. Ссылка Ссылка Google
https://developer.android.com/reference/android/app/Activity.html