让我们想象一下情况:
Fragment
(View
)致电Presenter
的方法doLogin()
。Presenter
启动了一些异步工作,现在 Boom!应用已关闭(转移到最近的应用)Presenter
幸存,异步工作仍在进行中。用户回到应用程序,但他没有看到任何通知工作已完成,因为视图已取消附加:
if(isViewAttached()) {
getView().setLoaded(workResult);
}
我想解决它。我看到的唯一方法是使用Queue<MessageToView>
,当View
再次附加时,执行每个&#34;消息&#34;。
我认为有一个库可以处理我的案例。那么,是吗?或者我可以使用什么模式?
答案 0 :(得分:1)
尝试使用Fragment的onResume()
生命周期方法,然后调用presenter.updateViews()
答案 1 :(得分:1)
请参阅github页面FAQ部分:
在屏幕中,Presenter及其视图是否会不同步 方向改变?
很好的问题。 Mosby假设所有来自Presenter的互动 随着视图发生在Android的主UI线程上。因此答案是 不会因为执行屏幕方向更改而无法发生 主UI线程也是如此。所以要么是执行了屏幕方向 完全(查看重新连接)或演示者调用视图方法 视图重新连接后,因为它们都在主UI线程上运行 演示者在开始屏幕方向之前调用视图方法 变化
因此,只要您的Presenter在主UI线程上调用View方法,一切都可以开箱即用。