Android: Действия TabHost ведут себя странно после kill / OnSaveInstanceState не вызывается - PullRequest
3 голосов
/ 25 мая 2011

Я не уверен, что делаю что-то не так, но так как я наткнулся на подобную ошибку , это может быть и другая ошибка.Мне было интересно, можете ли вы подтвердить это или хотя бы узнать решение?

Ладно, у меня есть хост с вкладками, содержащий две операции A и B.

A - это первая вкладка.Поэтому, если я сделаю следующее:

  • (A открыт) * ​​1010 *
  • переключатель B
  • закрыть приложение
  • завершить процесс
  • снова открыть приложение
  • (B появляется)

тогда у меня все нормально.Используя Журнал, я вижу, что onRestoreInstanceState был вызван как для A, так и для B.

Теперь я делаю следующее:

  • (B открыто, я НЕ переключился обратно на A)
  • переключатель B
  • закрыть приложение
  • завершить процесс
  • снова открыть приложение
  • (отображается B)

, затем "onRestoreInstanceState" вызывается для B, но не для A. A получает нулевой Bundle в "onCreate".

Если я переключаюсь на A, то снова на B, снова все нормально.После этого я могу повторить описанное выше поведение.

Я знаю, это звучит немного странно, но кто-нибудь сталкивался с этим раньше?

С уважением, медуза

Редактировать:

Я повторил это для другой вкладки (оставить открытым, убить активность, восстановить ее, снова убить, восстановить снова).Тогда «onCreate» B не вызывается, пока я сознательно не переключу вкладку;и независимо от того, был ли он восстановлен ранее или нет, он всегда получает пакет SavedInstance.Так что все в порядке.

Edit2:

Как исключение, то же самое верно для изменений вращения.Серьезно никто не заметил этого раньше?Это работает как на эмуляторе 2.2, так и на телефоне 2.3.

...