Android MVP通过API调用处理视图的最佳方法

时间:2019-02-03 20:36:16

标签: java android mvp

我有一个问题,当视图进入后台并且API响应作为回调出现时,如何更新视图或执行片段过渡。

例如,我有一个loginfragment。用户单击登录按钮,演示者将其带给我Interactor,在那里我有我的Rx观察者与存储库和模型进行对话,等等。响应可能会在3到5秒后返回。在这段时间内,我按下主页按钮,我的应用程序进入后台。演示者收到来自Interactor回调的响应,现在想更新视图,但视图处于后台。

成功登录后,我想进行一个片段过渡,然后转到片段B。但是我的观点是在背景中。因此,当我将应用程序重新显示到前台时,尽管我已经获得了登录成功API响应,但仍然看到登录屏幕。

当视图进入后台时,如何处理视图更新或片段转换?最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

一种方法是Mosby中的Model-View-Intent体系结构,其中,演示者存储视图的最新状态,并且该视图订阅ViewState Observable以便进行更新。通过这种方法,当可以安全地执行片段事务时,视图可以在onStart()中进行订阅。

另一种可能的方法是,每个视图都有一个状态(ViewState),该状态保存着对该视图的命令队列。如果视图已就绪(已经调用onStart()),则命令将立即传递给它,否则它将被保存到队列中并推迟到视图就绪为止。在Moxy中了解其实现方式。