Обходной путь для ошибки Android, относящейся к setRetainInstance (true) - PullRequest
4 голосов
/ 13 декабря 2011

Пожалуйста, проверьте эту проблему: http://code.google.com/p/android/issues/detail?id=20791

Проект (https://github.com/kaciula/BugRetain) использует CursorLoader для получения 2 значений из базы данных через контент-провайдера и показывает их на экране. Сценарий такой: Отупражнение A, перейдите к занятию B, измените ориентацию и вернитесь к занятию A. Значения из db больше не отображаются.

Может кто-нибудь предложить обходной путь для этой проблемы?только CursorLoader, но с любым загрузчиком. Как следствие этой ошибки, я не могу написать приложение с фрагментами, которые используют setRetainInstance и доступны в обеих ориентациях. Мне действительно нужен обходной путь, пока ребята из Android не исправят проблему. Есть идеи?

1 Ответ

4 голосов
/ 13 декабря 2011

Не устанавливайте свои фрагменты как сохраняемые, если вы используете Loaders.Если вам нужно сохранить некоторые данные между изменениями конфигурации, создайте еще один сохраняемый фрагмент и передайте ему эти данные.

Аналогичный пример можно найти здесь: FragmentRetainInstanceSupport .Но этот пример использует дополнительный фрагмент для целей многопоточности.В вашем случае этот дополнительный фрагмент будет использоваться в качестве контейнера данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...