好吧,這可能是陳舊的,但我真的需要了解最佳實踐將是什麼,而不是如何通過禁用屏幕方向或任何其他手段。即使在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模式
格局真的可能沒有關係,我並不真正需要的代碼段壽,我只需要明白,最適合情況的過程。
注:我的演示者通過視圖界面與視圖(片段/活動)進行通信,反之亦然。