Работа с OnPause, OnRestart, в вкладках виджет - Android
-
29-09-2019 - |
Вопрос
у меня есть ListView
это внутри TabWidget
. Отказ Когда я выбираю элемент в ListView
и иди к ребенку ListView
, TabWidget
исчезает. Это нормально, за исключением того, что он вызывает onPause
метод и, таким образом, вызывает onRestart
быть вызванным, когда я вернусь к родителю ListView
.
У меня есть onRestart
Настройка для получения обновленных данных с сервера, но я не хочу, чтобы это происходило каждый раз, когда пользователь возвращается к родителю ListView
. Отказ Я хочу только onRestart
Чтобы вызвать, когда приложение оживает от работы на заднем плане. Я попытался реализовать логическую переменную, чтобы определить, должен ли я выполнить код, который находится внутри onRestart
, но, похоже, нет способа обойти эффекты этого.
Идеи?
Решение
Вы можете снять с себя активность своего ребенка startActivityForResult
и установить флаг в onActivityResult
Чтобы не перезагрузить (который следует вызвать, когда пользователь поддерживает в списке с страницы по деталям). У вас будет переменная участника (скажем mReload
) что вы бы поставили перед true
в onCreate
и onRestart
, и к false
в onActivityResult
, затем обработать перезагрузку onResume
если mReload
это правда (и верните его к false
Таким образом, нормальное резюме не запустит перезагрузку).
Альтернатива: только что установите флаг (mLeftPage
) В вашей деятельности на прослушивателе ряд. При перезапуске, если mLeftPage
это правда, не перезагружайте список и устанавливайте mLeftPage
Вернемся к ложному. В противном случае перезагрузить.