我如何刷新 memInf.availMem 的值?
How i can refresh the value of memInf.availMem?
我不明白为什么 memInf.availMem 的值在第一次读取后总是相同的。
例如:当我启动我的应用程序时,该值为 0.441 GB,但在多次刷新计时器后,它始终相同。
如何刷新值?不可能几分钟内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
);
P.S:计时器工作是因为 Sistem.out.println(c) 每秒写入我的 logcat 值。
编辑:我添加了一部分代码
actManager = (ActivityManager) getActivity().getSystemService(getActivity().ACTIVITY_SERVICE);
memInfo = new ActivityManager.MemoryInfo();
actManager.getMemoryInfo(memInfo);
假设 memInf
是 ActivityManager.MemoryInfo
, you would need to call getMemoryInfo()
on ActivityManager
的一个实例,在每次 run()
调用时更新 memInf
。
我不明白为什么 memInf.availMem 的值在第一次读取后总是相同的。 例如:当我启动我的应用程序时,该值为 0.441 GB,但在多次刷新计时器后,它始终相同。
如何刷新值?不可能几分钟内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
);
P.S:计时器工作是因为 Sistem.out.println(c) 每秒写入我的 logcat 值。
编辑:我添加了一部分代码
actManager = (ActivityManager) getActivity().getSystemService(getActivity().ACTIVITY_SERVICE);
memInfo = new ActivityManager.MemoryInfo();
actManager.getMemoryInfo(memInfo);
假设 memInf
是 ActivityManager.MemoryInfo
, you would need to call getMemoryInfo()
on ActivityManager
的一个实例,在每次 run()
调用时更新 memInf
。