好吧,这可能是陈旧的,但我真的需要了解最佳实践将是什么,而不是如何通过禁用屏幕方向或任何其他手段。即使在Android屏幕旋转时获得回调(MVP设计模式)
我有一个登录屏幕,当用户点击登录按钮时,它应该去服务器和身份验证,并返回一个响应。 我的问题是如果屏幕旋转我的片段可能没有收到响应数据的回调。
我试着在Android上的MVP设计模式。
public void registerSignInEvent(){
this.signInBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = usernameEdit.getText().toString();
String password = passwordEdit.getText().toString();
authPresenter.loginUser(username, password, 1);
}
});
}
我已经想到了以下...
- 使用服务办理登录到服务器,当其完成服务更新存储如
is_login=false
或true
然后使用LocalBroadcastManager
将事件广播到视图(片段) ,因此它可以查询presenter
以了解登录状态。 - 使用带有setRetainIntance的片段(true);处理演示初始化和主持人将触发回调到活动中如方法onLoginSuccess //混淆自己
问题
A.我的一号思想的问题是,当我loginFragment此时暂停,广播接收器未注册,因此可能不会收到该事件。再加上我甚至不知道它是否合理。
B.它看起来复杂与MVP模式
格局真的可能没有关系,我并不真正需要的代码段寿,我只需要明白,最适合情况的过程。
注:我的演示者通过视图界面与视图(片段/活动)进行通信,反之亦然。