2012-02-24 121 views
0

我正在構建一個Android應用程序,但我有一些關於 的問題內存使用情況Android內存使用情況

我需要和使用的大部分數據都是存儲在xml字符串文件中的字符串數組。我使用了數組,因爲首先最大的數組將有多達30個項目,其次,不會有任何更新或刪除或通過應用程序插入項目。 我創建的所有自定義適配器都遵循Google的指導(快速方式 - 使用持有者類)

當用戶在活動之間切換時,根據選擇的不同,他使不同的數組在列表視圖中加載。

如果Android沒有使用,android會清除每個數組分配的內存嗎?我應該那樣做嗎? 我也使用MAT也檢查應用程序如何使用內存和檢查泄漏等..我事事一切都很好。我也使用了幾個PNG圖標/圖像。 該應用程序在啓動時獲得5MB,隨着用戶玩耍升降至8.5-9MB。

在此先感謝您的幫助!

+0

你什麼,如果它不使用的意思是:

String [] stringArray; ... protected void onCreate(Bundle savedInstanceState) { if (savedInstanceState != null) { stringArray = savedInstanceState.getStringArray("some_key"); } } protected void onSaveInstanceState (Bundle outState) { super.onSaveInstanceState(outState); outState.putStringArray("some_key", stringArray); } 

這在這裏詳細描述?像它沒有參考或像你的應用程序去背景? – Tim 2012-02-24 09:39:36

+0

謝謝!爲快速回答..我認爲我的意思是「像沒有參考它」..因爲第二個場景的應用程序在後臺和Android需要控制.. – JcDenton86 2012-02-24 09:43:58

+0

那麼,如果沒有在Java中的東西的參考,發生什麼事是垃圾收集器釋放空間早或晚 – Tim 2012-02-24 09:46:39

回答

1

如果需要內存,Android操作系統可能會殺死堆棧上的活動(無焦點)。當你的活動以這種方式死亡時,onSaveInstanceState(Bundle outState)被調用。你應該在這裏保存你的字符串數組。

當您的Activity中調用了onCreate(Bundle savedInstanceState)時,如果savedInstanceState不爲NULL,那麼這意味着您的Activity之前已被操作系統殺死,您需要重新填充該捆綁中的字符串數組。

例如:http://developer.android.com/reference/android/app/Activity.html

+0

感謝您的快速響應..我會嘗試今天下午上述,我會回來! – JcDenton86 2012-02-24 09:50:10