Presenter:何时使用 setRetainInstance(true) 片段开始异步工作
Presenter: when to start async work with setRetainInstance(true) fragment
Fragment生命周期中保留实例的唯一区别是onCreate()
不调用。但是在这个状态下 View 还没有膨胀。
什么时候必须用 setRetainInstance(true)
调用 Fragment 的 loadNews()
或 Presenter
之类的方法?我只想 loadNews()
只有在创建 Fragment 的新实例时。
在 Fragment.onViewCreated()
中执行此操作,因为此时您可以确定 UI(视图)已初始化并准备好显示内容(否则即演示者调用 view.showLoading()将导致 NullPointerException)。但是你必须自己确保 loadingData 只在第一次被调用(即检查是否 bundle == null
)
如果您使用 Mosby 的 ViewState 功能,则覆盖 onNewViewState()
方法并调用 presenter.loadData()
。 Mosby 只会在 View 第一次出现时调用此方法,因此您不必自己检查是否 bundle == null
。
Fragment生命周期中保留实例的唯一区别是onCreate()
不调用。但是在这个状态下 View 还没有膨胀。
什么时候必须用 setRetainInstance(true)
调用 Fragment 的 loadNews()
或 Presenter
之类的方法?我只想 loadNews()
只有在创建 Fragment 的新实例时。
在 Fragment.onViewCreated()
中执行此操作,因为此时您可以确定 UI(视图)已初始化并准备好显示内容(否则即演示者调用 view.showLoading()将导致 NullPointerException)。但是你必须自己确保 loadingData 只在第一次被调用(即检查是否 bundle == null
)
如果您使用 Mosby 的 ViewState 功能,则覆盖 onNewViewState()
方法并调用 presenter.loadData()
。 Mosby 只会在 View 第一次出现时调用此方法,因此您不必自己检查是否 bundle == null
。