为什么优化
现在智能手机基本能一天一充,如果一个应用耗电过多,肯定是有问题的,而开发中电量的优化可能是最容易被忽略的。
如何检测
1、手机设置-电池使用情况,查看电量消耗;
2、使用 Battery Historian配置电池使用情况。
优化方案
监控充电状态和电池电量
确定当前充电状态IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
简单地调用 registerReceiver 传入 null 作为接收器来注册 BroadcastReceiver,便可返回当前电池状态 Intent。
// 充电状态
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
status == BatteryManager.BATTERY_STATUS_FULL;
Log.d("wxl", "isCharging=" + isCharging);
Toast.makeText(this,"isCharging=" + isCharging,Toast.LENGTH_LONG).show();
// 设备是通过 USB 还是交流充电器进行充电
int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB;
boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC;
Log.d("wxl", "usbCharge=" + usbCharge + ",acCharge=" + acCharge);
Toast.makeText(this,"usbCharge=" + usbCharge + ",acCharg