Работа с onPause, onRestart, в виджете вкладок - Android - PullRequest
2 голосов
/ 30 ноября 2010

У меня есть ListView, который находится внутри TabWidget.Когда я выбираю элемент на ListView и перехожу к дочернему элементу ListView, TabWidget исчезает.Это нормально, за исключением того, что он вызывает метод onPause и, таким образом, вызывает onRestart, когда я возвращаюсь к родителю ListView.

У меня есть onRestart setup для получения обновленных данных изсервер, но я не хочу, чтобы это происходило каждый раз, когда пользователь возвращается к родителю ListView.Я хочу, чтобы onRestart вызывался только при запуске приложения в фоновом режиме.Я попытался реализовать булеву переменную, чтобы определить, должен ли я выполнять код внутри onRestart, но, похоже, нет способа обойти последствия этого.

Идеи?

1 Ответ

1 голос
/ 30 ноября 2010

Вы можете отключить активность вашего ребенка с помощью startActivityForResult и установить флаг в onActivityResult, чтобы не перезагружать (который должен вызываться, когда пользователь возвращается в просмотр списка со страницы сведений).У вас будет переменная-член (скажем, mReload), для которой вы установите true в onCreate и onRestart и false в onActivityResult, а затем обработайте перезагрузку onResume, еслиmReload имеет значение true (и установите его обратно в false, чтобы нормальное возобновление не вызывало перезагрузку).

Альтернатива: просто установите флажок (mLeftPage) в своей активности на приемнике щелчков строки.При перезапуске, если mLeftPage равно true, не перезагружайте список и не установите mLeftPage обратно в false.В противном случае перезагрузите.

...