场景是,我正在开发一个应用程序,它从文件中读取整数值并将其存储为整数。我从该文件中获得的值总是在变化,因为它是 cpu 频率值。
我如何从我的活动中监视这个值?我脑海中的方式是通过广播接收器、服务、观察者等。但不知道我该如何实现..
场景是,我正在开发一个应用程序,它从文件中读取整数值并将其存储为整数。我从该文件中获得的值总是在变化,因为它是 cpu 频率值。
我如何从我的活动中监视这个值?我脑海中的方式是通过广播接收器、服务、观察者等。但不知道我该如何实现..
您可以使用监听器:
public class CpuValueReader {
private CpuValueReaderListener listener = null;
int cpuValue;
public void setListener(CpuValueReaderListener listener) {
this.listener = listener;
}
public void startReading() {
// this is an exmaple, you may read the file here
// found value:
setValue(theNewValue);
}
private setValue(int value) {
if (value != cpuValue) {
cpueValue = value;
if (listener != null)
listener.cpuValueChanged(value);
}
}
}
界面:
public inteface CpuValueReaderListener {
public void cpuValueChanged(int newValue);
}
使用它(只是一个例子):
CpuValueReader instance = new CpuValueReader ();
instance.setListener(new CpuValueReaderListener() {
@Override
public void cpuValueChanged(int newValue) {
// do cool things with new value
}
});
我使用计时器刻度监听器来实现这一点。因此,在计时器的每一个刻度上,我都会读取文件并将值设置为文本视图
chronometer = (Chronometer)findViewById(R.id.chronometer1);
chronometer.setOnChronometerTickListener(new OnChronometerTickListener()
{
@Override
public void onChronometerTick(Chronometer arg0)
{
//read file here and set the value to my textView
}
});
chronometer.start();