memInf.availMem の値が最初の読み取り後に常に同じである理由がわかりません。例: アプリを起動したときの値は 0.441 GB ですが、タイマーを何度も更新した後は常に同じです。
値を更新するにはどうすればよいですか? ラムの使用が常に数分で同じということはあり得ません。
これは、値を更新するための実際のコードです(ただし、機能しません):
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: System.out.println(c) が毎秒 logcat に値を書き込むため、タイマーが機能します。
編集:コードの一部を追加しました
actManager = (ActivityManager) getActivity().getSystemService(getActivity().ACTIVITY_SERVICE);
memInfo = new ActivityManager.MemoryInfo();
actManager.getMemoryInfo(memInfo);