不知何故,我的思想不起作用,轻度发烧没有帮助。

我有以下代码,batteryLevel在此处显示正确的值-50。

public class AlarmEventService extends Service {
    static String batteryLevel;
    ...
    int level = intent.getIntExtra("level", 0);
    batteryLevel = String.valueOf(level);
    Log.i(APP_TAG, batteryLevel);
}


为什么在我的外部通话中,当我获得AlarmEventService.batteryLevel的值为null时?

public class AlarmEventReceiverWake extends BroadcastReceiver {
    ...
    Log.i(APP_TAG, "Battery Level " + AlarmEventService.batteryLevel);
}

最佳答案

从您提供的代码来看,没有理由不能使它按预期工作。可能的是:


可以在本地声明另一个名为batteryLevel的变量,从而不将值分配给全局版本。
首次通话后,可能会重置BatteryLevel的值。


确保该语句:

batteryLevel = String.valueOf(level);


实际上是之前被调用过的

Log.i(APP_TAG, "Battery Level " + AlarmEventService.batteryLevel);

10-08 02:21