2012-10-09 86 views
0

我基本上有一個理論問題。假設我有兩個活動A和B.我用A使用Intent調用活動B,但沒有完成A,所以基本上它會繼續onPause()。完成一些任務後,我完成了活動B,現在活動A將在前面。我的問題是finish()方法後會發生什麼,因爲有人告訴我finish()方法後,Activity B將會堆棧但不可訪問。我很迷惑,如果它發生,那麼它不是浪費記憶?或者如果我不正確,請以適當的方式指導我。活動內存管理

回答

1

我不知道我是否100%理解你的問題。但是,讓我們嘗試...

你這樣在任務活動堆棧看起來是這樣開始ActivityA:

ActivityA (shown to user) 

現在ActivityA開始ActivityB但沒有完成本身。 ActivityA暫停,ActivityB顯示給用戶。您的活動堆棧看起來是這樣的:

ActivityB (shown to user) 
ActivityA (paused) 

現在用戶做一些東西在ActivityB然後ActivityB上本身調用finish()。 ActivityA現在顯示給用戶。您的活動堆棧如下所示:

ActivityA (shown to user) 

此時,ActivityB已完成並可從系統中刪除。 Android在ActivityB上調用onDestroy(),垃圾收集器將最終將其從堆中移除。這裏沒有「浪費記憶」。

如果我誤解了你的問題,請發表評論,我會相應地修復我的答案。

+0

你有攔截我的問題的權利。 Thx – MGDroid

+0

http://stackoverflow.com/questions/12833854/fragment-and-parent-activity-life-cycle-to-這是我的一個更愚蠢的問題。希望你能幫助。 – MGDroid