2011-12-01 23 views
2

當我有兩個活動Android的意圖的堆棧 - 登錄屏幕和主菜單

Activity A, B; 
// A stands for Login Screen 
// B stands for Main Application Screen 

應用與A開始,然後用戶執行登錄,他會指着B

當我啓動B我添加這個標誌到意圖Intent.FLAG_ACTIVITY_CLEAR_TOP但是當我完成B我期望它是最後一項活動,並退出應用程序。

而不是我所期望的,A被帶到前面,用戶仍然在登錄屏幕上。

我是否應該從B開始AstartActivityForResult並使用B作爲整個應用程序的主要活動?

或者該標誌不工作,因爲它應該是?

回答

7

不要打擾意圖標誌。當活動A在成功登錄後開始活動B時,只需撥打電話finish()即可。

另一個稍微更多的參與方法是讓B成爲您的主要活動,並在B的onCreate方法中爲結果啓動活動A,這應該是一些合格/不合格標誌。活動A完成後(成功登錄,失敗或剛退出的用戶),活動B根據返回的值在onActivityResult中確定是繼續還是結束。這樣做是因爲,根據the docs

作爲一個特殊的情況下,如果您在活動初期的onCreate(捆綁savedInstanceState)/的onResume()中調用startActivityForResult()與requestCode> = 0,那麼你的窗口將不會顯示,直到結果從啓動的活動返回。這是爲了避免在重定向到其他活動時出現可見的閃爍。

+0

啊,這麼完蛋了:))不錯,謝謝 –

3

使用結束方法:

Intent lIntent = new Intent(); 
lIntent.setClass(this, MainActivity.class); 
startActivity(lIntent); 
finish();