Ведущий: когда начинать асинхронную работу с фрагментом setRetainInstance(true)

Единственное отличие сохраненного экземпляра в жизненном цикле фрагмента состоит в том, что onCreate() не звонит. Но в этом состоянии View еще не раздут.

Когда я должен вызывать методы, такие как loadNews() из Presenter фрагмента с setRetainInstance(true)? я бы хотел loadNews() только когда был создан свежий экземпляр Fragment.

1 ответ

Решение

Сделай это в Fragment.onViewCreated() потому что в этот момент вы можете быть уверены, что пользовательский интерфейс (представление) инициализирован и готов к отображению (в противном случае вызывающий метод view.showLoading() приведет к исключению NullPointerException). Но вы должны убедиться, что loadData вызывается только в первый раз (т.е. проверьте, bundle == null)

Если вы используете функцию MosS's ViewState, тогда переопределите onNewViewState() метод и вызов presenter.loadData(), Mosby когда-либо вызывает этот метод только при первом появлении представления, поэтому вам не нужно проверять, bundle == null по своему усмотрению.

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