我正在编写程序,并且能够获取光传感器值和当前电池电量,但是只有光值会发生变化,并且电池电量会发生变化。有没有办法随时获取这两个值?就像用户运行我的程序时一样,我想立即获取当前值,而不必等待它们更改。

最佳答案

如果您有代码在更改时接收值,则可以将值存储在变量中,并且在每次更改时只需使用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,并且可以对光传感器值进行相同的操作。

07-25 23:33
查看更多