Обновить активность в Android - PullRequest
192 голосов
/ 16 июня 2010

Это хорошая практика для перезагрузки Activity в Android ?

Как лучше всего это сделать? this.finish, а затем this.startActivity с активностью Intent?

Ответы [ 15 ]

1 голос
/ 12 февраля 2019

Перезагрузка всей вашей деятельности может быть тяжелой задачей. Просто поместите часть кода, которую нужно обновить (kotlin):

override fun onResume() {
    super.onResume()
    //here...
}

Java:

@Override
public void onResume(){
    super.onResume();
    //here...

}

и при необходимости вызывайте "onResume ()".

1 голос
/ 10 августа 2018

В упражнении вы можете позвонить recreate(), чтобы "воссоздать" упражнение (API 11 +)

1 голос
/ 06 августа 2010

После экспериментов с этим я не обнаружил неожиданных последствий перезапуска активности. Кроме того, я считаю, что это очень похоже на то, что Android делает по умолчанию при изменении ориентации, поэтому я не вижу причин, чтобы не делать это в подобных обстоятельствах.

1 голос
/ 16 июня 2010

Я не думаю, что это хорошая идея ... было бы лучше внедрить более чистый метод. Например, если ваша деятельность содержит форму, более чистый метод может просто очистить каждый виджет в форме и удалить все временные данные. Я думаю, это то, что вы хотите: восстановить активность в исходное состояние.

0 голосов
/ 24 ноября 2016

У меня был другой подход, такой как: установка launchMode моей активности на singleTop и без вызова finish(), просто startActivity(getIntent()) выполнит эту работу. Просто надо позаботиться о новых данных как в onCreate(), так и в onNewIntent. Со способом Sush приложение может мигать, как сказал AMAN SINGH. Но подход AMAN SINGH все равно создаст новую деятельность, которая, так или иначе, не нужна, даже если он решил проблему с «мерцанием», я думаю.

Слишком поздно для этого вопроса, но если кто-то ищет решение, вот оно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...