0
我不明白爲什麼memInf.availMem的值在第一次讀取後總是相同。 例如:當我啓動我的應用程序時,值爲0.441 GB,但在多次刷新計時器後,它始終是相同的。我怎樣才能刷新memInf.availMem的價值?
我該如何刷新價值?在幾分鐘內使用RAM是不可能的。
這是我真正的代碼以刷新值(但不工作):
int startUp = 2000; // millisecondi di attesa per fare partire il timer
int periodo = 1000; // millisecondi di attesa per la ripetizione del timer
Timer timer = new Timer(); //timer
//il metodo run viene eseguito ad ogni scadenza del timer
timer.scheduleAtFixedRate(
new TimerTask() {
String c;
public void run() {
c = String.valueOf(roundTreDecimali(memInfo.availMem/1073741824.0)) + " GB";
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
freeram.setText(c);
System.out.println(c);
}
});
}
},
startUp, periodo
);
PS:定時器的工作,因爲Sistem.out.println(三)我logcat中的值寫入每一秒。
編輯:我已經將我的代碼
actManager = (ActivityManager) getActivity().getSystemService(getActivity().ACTIVITY_SERVICE);
memInfo = new ActivityManager.MemoryInfo();
actManager.getMemoryInfo(memInfo);
謝謝,它的工作!我插入了actManager.getMemoryInfo(memInfo);在run():)中 –