Я не уверен, что делаю что-то не так, но так как я наткнулся на подобную ошибку , это может быть и другая ошибка.Мне было интересно, можете ли вы подтвердить это или хотя бы узнать решение?
Ладно, у меня есть хост с вкладками, содержащий две операции 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.