gpt4 book ai didi

java - Android MVP - 调用服务器

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:46 26 4
gpt4 key购买 nike

我开始学习 MVP,但我有一些与模型和演示者之间的通信相关的问题,例如登录功能

  • Activity 将获取所有字段,发送到演示者,演示者将进行验证,如果一切符合预期,演示者将调用模型发送到服务器,但此调用可能需要几秒钟,因此我需要等待服务器的回调以再次调用演示者,然后演示者调用 Activity 。

我的问题是:最好的方法是什么?目前,我在演示器中添加了一个 loginServerCallback() ,并将引用传递给模型,因此当模型完成时,我在演示器中调用 loginServerCallback() ,演示器分析响应并调用 View 中的方法。我这样做对吗?

public interface LoginMVP {
interface View {
void loginSuccess();
void loginFailured(String message);
}
interface Presenter {
void validateFields(String email, String password);
void loginServerCallback();
}
interface Model {
void loginServer(String email, String password);
}}

谢谢,泰雷兹

最佳答案

再添加一个回调

 public interface LoginMVP {
interface View {
void showLoadingIndicator(boolean active);
void loginSuccess();
void loginFailured(String message);
}
interface Presenter {
void validateFields(String email, String password);
void loginServerCallback();
}

interface OnLoginCallBack{
void onSuccess();
void onError();
}
interface Model {
void loginServer(String email, String password);
}
}

并像这样在演示者中调用登录方法

public void doLogin(String userName, String password) {
view.showLoadingIndicator(true);
modal.loginServer(userName, password, new LoginMVP.OnLoginCallBack() {
@Override
public void onSuccess() {
view.showLoadingIndicator(false);
view.loginSuccess();
}

@Override
public void onError() {
view.showLoadingIndicator(false);
view.loginFailured("SomeError");
}
});
}

关于java - Android MVP - 调用服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52365802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com