Contents
监测电量和充电状态
当你调整后台更新的频率以降低频繁更新导致电池老化的问题时,从检查当前电量和充电状态开始是个不错的选择。
应用更新对电池寿命的影响依赖于电池电量和充电状态。当手机连接外接电源时,应用更新带来的影响几乎可以忽略不计,所以大多数情况下,当手机连接电源时,你可以将刷新率提到最高。相反,如果手机没充电时,降低刷新率会延长电池寿命。
相似的,你可以检查电池电量,可能的情况下降低更新频率甚至在电量即将耗尽的时候关掉更新。
确定当前充电状态
首先是确定当前的充电状态。BatteryManager广播通过一个sticky intent所有电池和充电细节,包括充电状态。
因为是sticky intent,所以不用注册BroadcastReceiver,像下面的代码段所示,只需要简单的调用registerReceiver,传入一个null作为接收者,当前电池状态的intent就可以返回。这里也可以传入一个实际的BroadcastReceiver对象,但是没有必要,因为我们后面会有更新。
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
既可以确定电源的充电状态,也可以查看充电设备类型,比如USB或AC。
// Are we charging / charged? int status = batteryStatus.getI