1

У меня есть приложение с тремя фрагментами: Records, Chart и PieChart. Эти фрагменты хранятся в ViewPager в одном действии, и пользователь может провести между ними. У фрагмента записей есть таблица, в которой пользователь может вводить данные. Когда пользователь вводит данные, два других фрагмента необходимо обновить, поскольку они ссылаются на эти данные. Первоначально я хотел, чтобы фрагменты обновлялись по мере их прокрутки, но поскольку они выполняются с помощью swipeable, я не могу использовать onPause() и onResume(), потому что onPause() (и, следовательно, onResume()) вызывается только тогда, когда вкладка 2+ экранов. Поэтому я решил, что фрагмент записей отправит обратный вызов в Activity, чтобы сообщить другим фрагментам обновить себя, когда фрагмент записей обновлен. Я сохраняю все фрагменты в памяти, и это отлично работает, пока приложение не уйдет в фоновый режим. Когда приложение выходит из фонового режима, если пользователь вводит данные в таблицу, приложение выходит из строя, потому что все переменные в остальных фрагментах являются нулевыми. Почему это происходит? Я не использую saveinstancestate в любом месте своего приложения. Должна ли я быть?Обновление осколков экрана в ViewPager

ответ

0

Отправляясь на примере здесь:

http://developer.android.com/reference/android/app/Fragment.html

Вы должны сохранить все ваши данные, которые резервные каждый из ваших компонентов пользовательского интерфейса в Узле вашего onSaveInstance() ваш фрагмент. Затем в обратном вызове onActivityCreated() восстановите данные.

+0

А как насчет фрагментов? Могу ли я даже сохранить целые фрагменты в связку? Это данные в фрагментах, которые уничтожаются. Все, включая представления, ссылки на фрагменты, являются нулевыми. – GameKyuubi

+0

см. Редактирование. sry, не работали с Fragments (или любым Android-разработчиком Android) через некоторое время. –

+0

выглядит так, что в ACtivity тоже нужно выполнить некоторую работу. Это все в этом примере. –

Смежные вопросы