我正在開發一個應用程序。我在drawable-hdpi
文件夾中有1200多個圖標。每秒我都會拿起一個我需要展示的圖標。所有圖標均爲48*48
像素,格式爲.png
。他們總共佔用774 KB
空間。我正在運行一個Service
,然後從那裏我每秒選擇一個圖標。而在這Service
的onCreate()
我存儲drawable
IDS這樣的方式:如何在Android中使用大量圖標時管理內存?
speed = new ArrayList<Integer>();
speed.add(R.drawable.image000);
speed.add(R.drawable.image001);
speed.add(R.drawable.image002);
//...and so on
我的應用程序是如此簡單。它添加了一些數字,並從相應的數組列表房間中獲取圖標,並將其顯示在通知狀態欄中。喜歡:
nm.notify(1, builder.setContentTitle("up: " + s + " down: " + s2)
.setContentText(g)
.setSmallIcon(speed.get(xValue + yValue))
.setContentIntent(contentIntent)
.setPriority(128)
.build());
所以現在的問題是,我的應用程序佔用太多的內存(Arround 105-120 MB)
。我沒有使用任何Bitmap
。即使我打電話每秒這種方法Service
:
public void freeMemory() {
System.runFinalization();
Runtime.getRuntime().gc();
System.gc();
}
,也添加了這個代碼:
@Override
public void onBackPressed() {
super.onBackPressed();
this.finish();
}
在每一個活動
。那爲什麼這麼多的記憶呢?我是否以錯誤的方式存儲這些圖標?我現在應該怎麼做?
'我沒有使用任何位圖... ...並且你怎麼稱呼你的圖標('R.drawable.imagexyz')?不是這些位圖(PNG文件)? –
謝謝。我不知道這張圖是位圖本身。 @ FrankN.Stein –