2012-12-02 52 views
2

我有以下活動(想象Pinterest的應用程序):登錄和註冊屏幕

WellcomeActivity有兩個按鈕 - 註冊和登錄

LogInActivity你WellcomeActivity

來這裏

SignUpActivity你來自這裏WellcomeActivity

MainActivity - 您在登錄或註冊後來到這裏。

當用戶註冊或登錄時,我在LogInActivitySignUpActivity或開始撥打電話finish()。但WellcomeActivity仍然在堆棧中,所以當我按下「返回」按鈕時,我又在WellcomeActivity中。

當我開始LogInActivitySignUpActivity時,我無法撥打finish(),因爲如果用戶決定返回,他將退出應用程序。

現在,我如何設計活動轉換以使Pinterest類邏輯?

+0

好的問題,接下來的幾天我會面臨同樣的問題。我認爲這是可笑的清單中的一個標誌隱藏活動從活動堆棧 – rekire

+1

當你啓動'MainActivity'意圖添加此標誌'intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);'希望它會幫助你 –

+0

@MMohsinNaeem CLEAR_TASK,我想。它僅適用於API> 11。 –

回答

0

參考this answer

從WelcomeActivity,而不是startActivity(),調用startActivityForResult()在WelcomeActivity的onActivityResult()開始LoginActivity或SignupActivity.Then時,你調用finish()如果發送resultCode爲1

現在,當註冊登錄成功時,您在登錄/註冊活動中設置結果(1),它將調用結果碼爲1的WelcomeActivity的onActivityResult(),並完成它()。如果登錄或註冊失敗,則調用setResult(0)。

也在setResult(1)之後,您使用startActivity()來調用MainActivity。

0

我有一個類似的應用程序。我所做的就是創建一個共享首選項文件,它已經「登錄」和「註冊」爲字段。當他們註冊或登錄時,我會將此值設爲真。

在應用程序中,當他們返回到主活動時,我檢查onActivityResult,如果他們已註冊或登錄,我完成()該活動。

這樣,當他們返回登錄或註冊之前,它不會關閉它。我希望你明白。