作为app开发者,或许很少有人会注意app对电量的损耗,但是用户对电量可是很敏感的,app做好电量损耗的优化会为自己的app加分不少。
如果是一个好的负责任的开发者,就应该限制app对电量的影响,当没有网络连接的时候,禁用后台服务更新,当电池电量低的时候减少更新的频率,确保自己的app对电池的影响降到最低。当电池充电或者电量比较饱和时,可以最大限度的发挥app的刷新率
1 | < receiver android:name = ".PowerConnectReceiver" > |
2 | < intent-filter > |
3 | < action android:name = "android.intent.action.ACTION_POWER_CONNECTED" /> |
4 | < action android:name = "android.intent.action.ACTION_POWER_DISCONNECTED" /> |
5 | </ intent-filter > |
6 | </ receiver > |
01 | public class PowerConnectionReceiver extends BroadcastReceiver { |
02 | @Override |
03 | public void onReceive(Context context, Intent intent) { |
04 | int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, - 1 ); |
05 | boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING || |
06 | status == BatteryManager.BATTERY_STATUS_FULL; |
07 | |
08 | int chargeFlag = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, - 1 ); |
09 | boolean usbCharge = chargeFlag == BATTERY_PLUGGED_USB; |
10 | boolean acCharge = chargeFlag == BATTERY_PLUGGED_AC; |
11 | } |
12 | } |
1 | //获取程序是否充电 |
2 | |
3 | int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS,- 1 ); |
4 | |
5 | boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||status == BatteryManager.BATTERY_STATUS_FULL; |
1 | // 充电方式,usb还是电源 |
2 | int chargeFlag = battery.getIntExtra(BatteryManager.EXTRA_PLUGGED, - 1 ); |
3 | boolean usbCharge = chargeFlag == BATTERY_PLUGGED_USB; |
4 | boolean acCharge = chargeFlag == BATTERY_PLUGGED_AC; |
1 | 不断的检测电量也会影响电池的使用时间,我们可以这样做 |
1 | < receiver android:name = ".BatteryLevelReceiver" > |
2 | < intent-filter > |
3 | < action android:name = "android.intent.action.ACTION_BATTERY_LOW" /> < action android:name = "android.intent.action.ACTION_BATTERY_OKAY" /> </ intent-filter > |
4 | </ receiver > |
当电量低或者满时会触发
有时间再写确定和监测连接状态