我的第一個活動是其的onCreate內創建第二個活動旋轉設備時:問題與程序流程有兩個活動
if (userName == null || password == null) {
if (!getUserNameAndPassword()) {
// User is launching this for the first time
Intent explicitIntent = new Intent(CreateSessionAlert.this,CreateUserNameAndPassword.class);<br>
startActivityForResult(explicitIntent,GET_USER_NAME_AND_PASSWORD);
}
}
第二個活動具有與提交和取消按鈕以及用戶名和密碼的EditText意見。當任一按鈕被按下時,來自用戶名和密碼的文本被髮送回活動一(通過onActivityResult),活動一連接到服務器以查看用戶名是否可用。在連接到服務器時,showDialog用於顯示ProgressDialog。當服務器響應時,ProgressDialog消失並顯示AlertDialog。只要設備沒有旋轉,這工作正常。
下面是問題:如果用戶從第二個活動內部旋轉設備並推送提交,則第一個活動會重新調用其onCreate,由於用戶名和密碼仍然爲空,因此會再次啓動第二個活動。
有沒有人有任何建議來解決這個問題?
是否有一種方法可用於將數據從活動2傳遞給活動1的onCreate?我不想在這種情況下使用數據庫,因爲這看起來像是過度殺傷。
我想過將服務器通信和對話框包含到活動2中,但之後我會在活動1和活動2(活動1連接到服務器以獲取其他內容)中複製服務器代碼。這種方法的另一個問題是用戶可以選擇取消創建密碼,在這種情況下,我希望應用程序完成。如果我從活動2完成了活動,活動1將會出現,除非已創建用戶名和密碼,否則我不想顯示活動1。
它剛剛發生在我身上 - 如果我可以用對話框替換活動2,它可能會使事情變得更簡單。對話框視圖需要有2個EditTexts和2個按鈕。我可以創建這樣的東西並使用showDialog方法嗎?任何其他想法?
相似的問題:http://stackoverflow.com/questions/1002085/android-webview-handling-orientation-changes – eldarerathis 2010-08-13 15:17:26