我試圖尋找一個明確的答案,但無法找到它,所以問它在這裏。道歉,如果這是一個問題。查看通脹緩存在活動
我的問題是Android是否將視野膨脹超出了活動的範圍?
我寫,其中有2個活動
活動A 活動B
甲只是有一個按鈕,啓動B. B具有相當複雜的佈局的示例應用程序。
B有一個視圖存根,我定時viewView的通貨膨脹(基本上呈現整個佈局)。
當我計算B的佈局膨脹需要多少時間。第一次它花了大約100ms。進一步通貨膨脹花了15-20毫秒。奇怪的部分是經過幾次迭代後,隨機B再次需要100 +毫秒來膨脹。
我也驗證了我的複雜的活動,(B)是被破壞掉了,再次創造了(因爲我打的B回來,從A再次啓動B)
我找不到在Android的代碼庫可能什麼解釋我爲什麼會發生這種情況。
有人可以告訴我這個緩存發生在哪裏。
以下是ComplexActivity onCreate和onDestroy的日誌。我使用背壓破壞活動
04-30 13:32:09.879: I/testInflation(19298): onCreate setting up content view
04-30 13:32:09.895: I/testInflation(19298): onCreate content view set. Time took = 15 ms.
04-30 13:32:09.895: I/testInflation(19298): onCreate inflating ui
04-30 13:32:10.004: I/testInflation(19298): onCreate ui inflated. Time took = 108 ms. Total time into method = 123 ms.
04-30 13:32:12.450: I/testInflation(19298): activity destroyed
04-30 13:32:12.903: I/testInflation(19298): onCreate setting up content view
04-30 13:32:12.911: I/testInflation(19298): onCreate content view set. Time took = 13 ms.
04-30 13:32:12.911: I/testInflation(19298): onCreate inflating ui
04-30 13:32:12.926: I/testInflation(19298): onCreate ui inflated. Time took = 13 ms. Total time into method = 26 ms.
04-30 13:32:13.958: I/testInflation(19298): activity destroyed
04-30 13:32:14.379: I/testInflation(19298): onCreate setting up content view
04-30 13:32:14.395: I/testInflation(19298): onCreate content view set. Time took = 11 ms.
04-30 13:32:14.395: I/testInflation(19298): onCreate inflating ui
04-30 13:32:14.403: I/testInflation(19298): onCreate ui inflated. Time took = 11 ms. Total time into method = 22 ms.
04-30 13:32:15.223: I/testInflation(19298): activity destroyed
04-30 13:32:15.622: I/testInflation(19298): onCreate setting up content view
04-30 13:32:15.637: I/testInflation(19298): onCreate content view set. Time took = 11 ms.
04-30 13:32:15.637: I/testInflation(19298): onCreate inflating ui
04-30 13:32:15.645: I/testInflation(19298): onCreate ui inflated. Time took = 13 ms. Total time into method = 24 ms.
04-30 13:32:16.692: I/testInflation(19298): activity destroyed
04-30 13:32:17.934: I/testInflation(19298): onCreate setting up content view
04-30 13:32:17.950: I/testInflation(19298): onCreate content view set. Time took = 11 ms.
04-30 13:32:17.950: I/testInflation(19298): onCreate inflating ui
04-30 13:32:17.965: I/testInflation(19298): onCreate ui inflated. Time took = 18 ms. Total time into method = 30 ms.
04-30 13:32:19.020: I/testInflation(19298): activity destroyed
04-30 13:32:23.825: I/testInflation(19298): onCreate setting up content view
04-30 13:32:23.833: I/testInflation(19298): onCreate content view set. Time took = 12 ms.
04-30 13:32:23.833: I/testInflation(19298): onCreate inflating ui
04-30 13:32:23.848: I/testInflation(19298): onCreate ui inflated. Time took = 11 ms. Total time into method = 23 ms.
04-30 13:32:26.622: I/testInflation(19298): activity destroyed
04-30 13:32:27.145: I/testInflation(19298): onCreate setting up content view
04-30 13:32:27.161: I/testInflation(19298): onCreate content view set. Time took = 15 ms.
04-30 13:32:27.161: I/testInflation(19298): onCreate inflating ui
04-30 13:32:27.231: I/testInflation(19298): onCreate ui inflated. Time took = 69 ms. Total time into method = 85 ms.
04-30 13:32:28.200: I/testInflation(19298): activity destroyed
04-30 13:32:28.645: I/testInflation(19298): onCreate setting up content view
04-30 13:32:28.661: I/testInflation(19298): onCreate content view set. Time took = 11 ms.
04-30 13:32:28.661: I/testInflation(19298): onCreate inflating ui
04-30 13:32:28.747: I/testInflation(19298): onCreate ui inflated. Time took = 91 ms. Total time into method = 102 ms.
@Robert感謝您修復logcat輸出。 – ReadyToLearn 2013-04-30 20:44:27
當您按下後,Android不會中止您的活動,它會一直保留在內存中,直到系統內存不足,然後纔會刪除活動。如果你有一個Android4 +設備,有一種方法可以強制殺死活動人員,如果你有一個Android4 +設備, 去設置 - >開發人員選項 - >不要保留活動,並確保選中 – 2013-04-30 20:45:16
@jucas即使是我檢查了Activity的onDestroy是否被調用? – ReadyToLearn 2013-04-30 20:46:29