android 优化耗电量

来源:互联网 发布:软件项目监理细则 编辑:程序博客网 时间:2024/04/29 01:15

作为app开发者,或许很少有人会注意app对电量的损耗,但是用户对电量可是很敏感的,app做好电量损耗的优化会为自己的app加分不少。

如果是一个好的负责任的开发者,就应该限制app对电量的影响,当没有网络连接的时候,禁用后台服务更新,当电池电量低的时候减少更新的频率,确保自己的app对电池的影响降到最低。当电池充电或者电量比较饱和时,可以最大限度的发挥app的刷新率

view source
print?
1<receiverandroid:name=".PowerConnectReceiver">
2  <intent-filter>
3    <actionandroid:name="android.intent.action.ACTION_POWER_CONNECTED"/>
4    <actionandroid:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
5  </intent-filter>
6</receiver>

view source
print?
01public class PowerConnectionReceiver extendsBroadcastReceiver {
02    @Override
03    publicvoid onReceive(Context context, Intent intent) { 
04        intstatus = intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
05        booleanisCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
06                            status == BatteryManager.BATTERY_STATUS_FULL;
07      
08        intchargeFlag = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
09        booleanusbCharge = chargeFlag == BATTERY_PLUGGED_USB;
10        booleanacCharge = chargeFlag == BATTERY_PLUGGED_AC;
11    }
12}

view source
print?
1//获取程序是否充电
2  
3int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS,-1);
4  
5boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||status == BatteryManager.BATTERY_STATUS_FULL;

view source
print?
1// 充电方式,usb还是电源
2int chargeFlag = battery.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
3boolean usbCharge = chargeFlag == BATTERY_PLUGGED_USB;
4boolean acCharge = chargeFlag == BATTERY_PLUGGED_AC;
view source
print?
1不断的检测电量也会影响电池的使用时间,我们可以这样做

view source
print?
1<receiverandroid:name=".BatteryLevelReceiver"
2<intent-filter>   
3<actionandroid:name="android.intent.action.ACTION_BATTERY_LOW"/>   <actionandroid:name="android.intent.action.ACTION_BATTERY_OKAY"/>   </intent-filter
4</receiver>

当电量低或者满时会触发
有时间再写确定和监测连接状态