如何使用targetSdkVersion监听Android中电池充电状态的变化>;25

如何使用targetSdkVersion监听Android中电池充电状态的变化>;25,android,Android,对于targetSdkVersion 25,这会引发警告(W/BroadcastQueue:Background execution not allowed:receiving Intent),并且不会执行Intent 有一种方法可以用来安排一个作业,该作业只在电源断开时执行,但我们如何才能有效地侦听电源断开时的情况?我唯一能想到的办法是使用AlarmManager定期轮询电池充电状态。用收听这些广播的广播接收器启动服务不能解决问题吗?@tyczj-不幸的是,该服务最终将进入后台,您最终还必须注

对于targetSdkVersion 25,这会引发警告(
W/BroadcastQueue:Background execution not allowed:receiving Intent
),并且不会执行Intent


有一种方法可以用来安排一个作业,该作业只在电源断开时执行,但我们如何才能有效地侦听电源断开时的情况?我唯一能想到的办法是使用AlarmManager定期轮询电池充电状态。

用收听这些广播的广播接收器启动服务不能解决问题吗?@tyczj-不幸的是,该服务最终将进入后台,您最终还必须注销广播接收器。这就是您使用前台服务的原因,它没有正常服务所具有的限制does@tyczj-我不想让用户仅仅因为电池充电状态服务而遭受粘性通知的痛苦,因此,您想让用户遭受持续轮询的痛苦,他们可能知道也可能不知道电池耗尽了?(顺便说一句,这仍然不起作用)
<receiver android:name=".PowerConnectionReceiver">
  <intent-filter>
    <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
    <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
  </intent-filter>
</receiver>