все время вызывается onLoadFinished

308
07 сентября 2017, 17:07

Использую ViewPager (FragmentStatePagerAdapter) с фрагментами. Для загрузки данных у фрагмента использую AsyncTaskLoader, загрузка которого стартует в onCreate(). При свайпе между фрагментами все время вызывается onLoadFinished(). Я не понимаю, почему так происходит. Насколько я понял, при использовании FragmentStatePagerAdapter фрагмент не пересоздается, а лишь отсоединяется. Следовательно, ни onCreate(), ни onLoadFinished() не должны вызываться, но они вызываются. Почему?

Answer 1

FragmentStatePagerAdapter убивает фрагменты, когда они становятся вне видимости и сохраняет их State. Когда вы снова возвращаетесь к фрагменту, то срабатывает полный цикл создания, но savedInstanceState из предыдущего состояния. Из документации:

This version of the pager is more useful when there are a large number of pages, working more like a list view. When pages are not visible to the user, their entire fragment may be destroyed, only keeping the saved state of that fragment.

Отсоединяется фрагмент в FragmentPagerAdapter :)

Из полезных ссылок - документация. и вот эта статья

READ ALSO
Как преобразовать String в Date?

Как преобразовать String в Date?

Есть две строки на русском языке:

414
Что лучше использовать для back end-a на java? [требует правки]

Что лучше использовать для back end-a на java? [требует правки]

Что лучше использовать для back end-a на java, если он будет использоваться под web и mobile appИ на сколько хорошо для этого подходит java? Или может есть...

330
Пример JAVA кода API приложения для interactivebrokers

Пример JAVA кода API приложения для interactivebrokers

Здравствуйте! Я решил попробовать создать свое API приложения для торговой площадки InteractiveBrokersОднако подробной документации по этому поводу...

321
Не удается конвертировать String в enum

Не удается конвертировать String в enum

Вы неправильно использовали конструктор для EnumКроме того, обычно Enum именуется существительным в единцественном числе

344