我有了這樣的啓動流的應用:如何在API去一個新的活動時清除返回堆棧<= 10
StartupActivity - >的LoginDialog - > LoginActivity - > HomeActivity
當我從LoginActivity到HomeActivity去我打電話:
Intent intent = new Intent(this, HomeActivity.class);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
}
else
{
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
}
startActivity(intent);
finish();
On >= API 11
,這使得它,以便HomeActivity
是一個全新的任務和StartupActivity
不再在後面的堆棧上。
但是,在API <= 10
上,FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP
從背面堆棧中清除LoginActivity
,但StartupActivity
仍然存在。如果用戶從HomeActivity
單擊回來,它會將它們帶回StartupActivity
。
如何從後端堆棧清除StartupActivity?
- 從我的研究,這似乎是最好的辦法是startActivityForResult(),但我能做到這一點從對話?誰會得到結果?
摘要:
- 從
StartupActivity
,我展示LoginDialog
。 - 從
LoginDialog
,我去LoginActivity
沒有清除回棧。- 這是因爲我希望用戶能夠從
LoginActivity
回到StartupActivity
。
- 這是因爲我希望用戶能夠從
- 從
LoginActivity
,我去HomeActivity
疏通背部棧 - 按back仍然可以追溯到
StartupActivity
上devices <= API 10
不幸的是,這不起作用,因爲我* *想要StartupActivity的歷史記錄。我希望你能夠從LoginActivity回到它,但我不想讓你在成功進入HomeActivity之後再回到它。 – zedman 2013-02-14 02:53:57