Android 在应用程序开始时未获取电池状态

Android 在应用程序开始时未获取电池状态,android,Android,我试图用一些监听器控制我的应用程序的电池电量和电源连接,但由于某些原因,它们在应用程序开始时也没有得到更新。有没有办法用手来做 类PhoneStatusService private BroadcastReceiver mPowerConnectedReceiver; private BroadcastReceiver mPowerDisconnectedReceiver; private BroadcastReceiver mNormalPowerReceiver; private Br

我试图用一些监听器控制我的应用程序的电池电量和电源连接,但由于某些原因,它们在应用程序开始时也没有得到更新。有没有办法用手来做

类PhoneStatusService

private BroadcastReceiver mPowerConnectedReceiver;

private BroadcastReceiver mPowerDisconnectedReceiver;

private BroadcastReceiver mNormalPowerReceiver;

private BroadcastReceiver mLowPowerReceiver;

private static boolean sIsBatteryCharging = false;

private static boolean sIsBatteryLevelOk = true;
onCreate()


它在启动应用程序后工作吗?是指几分钟或几秒钟后?最好使用应用程序类注册此广播接收器。您应该在应用程序类中注册广播接收器。这不符合我的体系结构。我通过获取一次状态并进行回调来解决它。
    mPowerConnectedReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(final Context context, final Intent intent) {
            PhoneStatusService.this.setChargingStatus(true);
        }
    };
    mPowerDisconnectedReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(final Context context, final Intent intent) {
            PhoneStatusService.this.setChargingStatus(false);
        }
    };
    mNormalPowerReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(final Context context, final Intent intent) {
            PhoneStatusService.this.setBatteryLevel(true);
        }
    };
    mLowPowerReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(final Context context, final Intent intent) {
            PhoneStatusService.this.setBatteryLevel(false);
        }
    };
    this.registerReceiver(mPowerConnectedReceiver, new IntentFilter(
            Intent.ACTION_POWER_CONNECTED));
    this.registerReceiver(mPowerDisconnectedReceiver, new IntentFilter(
            Intent.ACTION_POWER_DISCONNECTED));
    this.registerReceiver(mNormalPowerReceiver, new IntentFilter(Intent.ACTION_BATTERY_OKAY));
    this.registerReceiver(mLowPowerReceiver, new IntentFilter(Intent.ACTION_BATTERY_LOW));