2012-09-04 81 views
0

我想看看您如何處理Android上的登錄。我正在開發一款應用程序,需要您登錄才能使用。到目前爲止我有兩個活動。主屏幕和登錄屏幕。我已經這樣設置它。Android模式登錄

登錄屏幕是主屏幕。它要求用戶登錄。如果登錄成功,它將啓動主屏幕,並在登錄活動中致電完成。當用戶註銷時,我完成主屏幕活動並開始登錄活動。

這是不正常工作,因爲當我離開應用程序,然後返回,即使成功登錄後,登錄屏幕顯示。

我在想,我將不得不跟蹤用戶登錄或不在服務中的天氣。然後,如果我在我登錄登錄活動將自動啓動主屏幕。

或者我可以開始主屏幕活動,如果用戶沒有登錄,將啓動登錄屏幕。

什麼是典型的Android模式對於這種情況?

+0

這應該工作得很好。您是否從安裝程序啓動應用程序(第一次)?或從一個IDE(如IntelliJ或Eclipse)? –

+0

另外,發佈您的清單,它可能有助於排除此故障。 –

回答

0

首先,爲了更有組織性,你應該在這個類上創建類似MyApplication extends Application的東西,你可以創建一個靜態方法onSessionsCreated並傳遞一個布爾值,表示顯示或不顯示你的MainScreen(不是登錄屏幕)。

公共靜態無效onSessionCreated(上下文語境,CurrentFan currentFan,布爾startMainScreenActivity){ 如果(startMainScreenActivity){ 意圖意圖=新意圖(上下文,MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); context.startActivity(intent); }

如果您使用的是MVC,您應該創建一個SessionsController來在您的API中登錄用戶,然後在回調登錄處,您應該調用onSessionCreated傳遞當前用戶。

if (activity instanceof LoginActivity) 
    ((LoginActivity)mActivity).onSessionCreated(user); 

然後在你LoginActivity您可以撥打:

public void onSessionCreated(User currentUser) { 
     MyApplication.onSessionCreated(this, currentUser, true); 
     finish(); 
} 

使用這個模型,你會: - 使用MVC模式 - 用你的API與您的用戶 登錄 - 使用所有MyApplication類

我認爲這應該是一個好方法。希望對你有用。