2013-04-29 46 views
0

我有一個應用程序,開始一系列對話主題活動,我希望能夠一次性彈出它們並返回到主要活動。我看了看現有的問題,如:Android彈出堆棧活動 - 是的,再次

How to clear current activities in the stack?

how to kill sub activities and bring activity to top of stack

Android Popping off the Activity Stack

並在此基礎上,與此想出了:

Intent intent = new Intent(this, MainActivity.class); 
intent.setFlags(android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

這工作功能,但問題我當執行此操作時,對話框主題活動背後的屏幕會變爲黑色第二次,最後將屏幕上的對話框動畫化。如果我用後退按鈕手動彈出這些活動,則不會發生。

在logcat中我可以看到,當我使用上面的方法Intent彈出對話框,主要活動被破壞並重新創建,而當我只是用後退按鈕時,onDestroyonCreate方法不運行。有沒有辦法阻止主要活動以這種方式明確重新啓動?

回答

0

怎麼樣,如果你,當你把你的主要活動,以返回堆棧你比空像其他標記添加:

transaction.addToBackStack("welcome"); 

然後你可以彈出像這樣返回堆棧:

FragmentManager fm = getFragmentManager(); 
fm.popBackStack("welcome", FragmentManager.POP_BACK_STACK_INCLUSIVE);