[Android] 用服务在后台检查电池电量


Answers

你不需要一个服务。 在您的应用程序中包含一个广播接收器,用于侦听Intent.ACTION_BATTERY_CHANGED广播。 在“应用程序清单”中定义广播接收器,并在电池状态发生变化时自动启动。

广播包括关于电池当前状态的信息,因此不需要精心制作(并且非常昂贵!)解决方案来轮询这些信息。

这个页面将提供所有的细节。

该页面有趣的引用:

您不能轻易地持续监视电池状态,但您不需要。

一般来说,不断监测电池电量的影响对电池的影响比应用程序的正常行为更大,所以最好只监视电池电量的显着变化,特别是当设备进入或退出低电量状态时。

下面的清单片段是从广播接收器中的intent过滤器元素中提取的。 通过监听ACTION_BATTERY_LOW和ACTION_BATTERY_OKAY,每当设备电池​​电量变低或退出低电平状态时,都会触发接收器。

<receiver android:name=".BatteryLevelReceiver">
<intent-filter>
  <action android:name="android.intent.action.ACTION_BATTERY_LOW"/>
  <action android:name="android.intent.action.ACTION_BATTERY_OKAY"/>
  </intent-filter>
</receiver>

您可能希望监视的其他操作包括: ACTION_BATTERY_CHANGEDACTION_POWER_CONNECTEDACTION_POWER_DISCONNECTED

Question

我搜查了很多,但我总是更困惑。

我必须创建一个在后台工作的应用程序,并检查电池电量。 我如何创建服务? 服务应该在设备启动时启动,并且在电池达到一定比例时必须与Activity进行通信,因此消费者之间没有任何交互。

我可以创建什么类型的服务? 我有什么事情要做?