我正在使用MVP架构创建一个Android应用程序。我创建了Presenter和Interactor类。当app处于后台并回到前台时,我正在努力更新UI。
让我们考虑以下情景。
单击UI上的按钮,并向演示者通知它。 Presenter要求Interactor提供后端数据。当Interactor以某种方式向演示者提供结果时,UI处于后台。一旦应用处于前台,我该如何保存它的状态并更改UI组件。
我尝试过以下事情:
有没有更好的方法来实现这一目标?
答案 0 :(得分:0)
您可以向演示者添加一些“暂停”逻辑:
答案 1 :(得分:0)
名称MVP建议模型视图演示者 模型:Model负责getter setter方法,也称为POJO。 视图:包含带有视图的活动/片段。 演示者:实际业务逻辑,您可以在其中传递网络呼叫或与后端数据库(如SQLite / MySql)相关联。
当按钮单击时,您需要调用演示者,该演示者将在完成后台任务后执行后台任务,您需要通过CallBacks通知您的视图响应是成功/失败,这是通过接口完成的。
示例:
interface BaseContract {
interface BaseView {
//Methods for View
void onDoSomething();
}
interface BasePresenter {
void doSomething();
}
}
class BaseMainPresenter implements BaseContract.BasePresenter {
BaseContract.BaseView view;
BaseMainPresenter(BaseContract.BaseView view) {
this.view = view;
}
@Override
public void doSomething() {
if (view != null)
view.onDoSomething();
}
}
class DemoClass implements BaseContract.BaseView {
//Create object of Presenter
/****
* Example :
* BaseMainPresenter baseMainPresenter = new BaseMainPresenter(this);
*/
@Override
public void onDoSomething() {
//Deal with Context here.
}
}