Ведущий: когда начинать асинхронную работу с фрагментом 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
по своему усмотрению.