2017-06-02 45 views
0

在我製作的應用程序中,有12個不同的活動鏈接到主頁面。他們都是彼此獨立的。我希望從後端堆棧中刪除以前的活動,以便應用程序佔用更少的內存。 我設法讓每個活動的單個實例使用如何在Android中設置後臺堆棧中的活動限制?

android:launchMode = "singleInstance" 

但仍當這些活動從主頁開始,12個不同的頁面去後退堆棧和應用程序崩潰。 什麼是解決方法?

+0

嘗試增加Intent.FLAG_ACTIVITY_NO_HISTORY); 這個標誌,當你從一個活動另一個去......這個東西,你可以在清單中定義以及 – santoXme

回答

0

聽起來像android:noHistory =「true」將是您的解決方案。

值爲「true」表示該活動不會留下歷史跡線 。它不會保留在任務的活動堆棧中,因此 用戶將無法返回到該堆棧。

How does android:noHistory="true" work?

+0

'android:noHistory =「true」' 似乎不工作得很好。我的意思是分配的內存甚至還在開放活動中上升。如果我在兩次活動之間切換幾次,內存會不斷上升(每次活動調用大約20MB),直到應用程序崩潰到180MB。如果沒有歷史活動在背後,這不應該發生。 –

0
當你回到啓動MainActivty

,12個activitys稱之爲上backpress。

Intent intent = new Intent(youeActivity.this,MainActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP);  
startActivity(intent); 
finish(); 

manofest添加這一個

android:excludeFromRecents="true"