Вопрос

у меня есть 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 Вернемся к ложному. В противном случае перезагрузить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top