我正在编写程序,并且能够获取光传感器值和当前电池电量,但是只有光值会发生变化,并且电池电量会发生变化。有没有办法随时获取这两个值?就像用户运行我的程序时一样,我想立即获取当前值,而不必等待它们更改。
最佳答案
如果您有代码在更改时接收值,则可以将值存储在变量中,并且在每次更改时只需使用setter方法更新变量即可。然后,只要您随时需要当前值,就可以使用getter方法调用该变量。
因此,如果您的方法如下所示
private void monitorBatteryState() {
BroadcastReceiver battReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
context.unregisterReceiver(this);
int rawlevel = intent.getIntExtra("level", -1);
int scale = intent.getIntExtra("scale", -1);
int status = intent.getIntExtra("status", -1);
int health = intent.getIntExtra("health", -1);
int level = -1; // percentage, or -1 for unknown
if (rawlevel >= 0 && scale > 0) {
level = (rawlevel * 100) / scale;
}
setBatteryLevel(rawlevel); // setter method.
}
}
public void setBatteryLevel(rawlevel) {
batteryLevel = rawlevel;
}
public int getBatteryLevel() {
return rawlevel;
}
您可以使用getter方法来返回当前的电池电量
rawlevel
,并且可以对光传感器值进行相同的操作。