Android Tabs/ Фрагменты жизненного цикла

Что касается вкладок / фрагментов, могут ли они сохранять информацию? Например, если у меня была вкладка, которая при первом выборе выполняла http-вызов, а затем отображала информацию, могу ли я затем заставить ее снова отображать информацию при выборе без повторного http-вызова?

1 ответ

Короткий ответ, да.

Существует два способа использования вкладок в Android. Вы можете использовать TabActivity или TabHost. Поскольку вы упомянули фрагменты, вы, скорее всего, думаете о TabHost. Тем не менее, я включу описание обоих на всякий случай:

TabHost:

Поскольку все ваши фрагменты содержатся в одном действии, при переходе между вкладками ни одно из событий жизненного цикла не запускается для фрагмента, от которого вы переходите, поэтому данные являются постоянными, независимо от того, хотите вы этого или нет.

TabActivity:

Это где это становится немного сложнее. Нажатие на новую вкладку фактически останавливает старую активность, удаляя большую часть ваших данных. Лучший способ сохранить какие-либо данные - это поместить их в объект Singleton или объект Application. Это класс, который расширяет Application так же, как ваши классы Activity расширяют Activity. Все остальные действия затем имеют доступ к этому классу, который вы можете предоставить стандартным получателям / установщикам для любых данных, которые вы хотите.

Если у вас есть большой объем данных, которые вы хотели бы сохранить, вы можете заняться созданием базы данных SQLite, так как это сэкономит память.

Другие вопросы по тегам