耗电优化代码,根据需要开启关闭一些耗电操作
- (BOOL)shouldproceesdWithMinLevel:(NSUInteger)minLevel{//minLevel1~100
UIDevice *device = [UIDevicecurrentDevice];
device.batteryMonitoringEnabled =YES;//开启电量监控
UIDeviceBatteryState state = device.batteryState;//电池电量
if (state ==UIDeviceBatteryStateCharging|| state == UIDeviceBatteryStateFull) {
return YES;
}//充电或电量满电
NSUInteger batteryLevel = (NSUInteger)(device.batteryLevel *100);//device.batteryLevel为0.1~1
NSLog(@"batteryLevel:%ld",batteryLevel);
if (batteryLevel>= minLevel) {
return YES;
}
return NO;
}
//在电量低的时候,用户执行耗电量大的密集型任务时提示方法
- (void)onIntensiveOperationButtonClick{
NSUserDefaults *defaults = [NSUserDefaultsstandardUserDefaults];
BOOL prompt = [defaults boolForKey:@"promptForBattrey"];获取是否开启低电量提示
NSUInteger minLevel = [defaults integerForKey:@"minBatteryLevel"];//获取level数值,判断什么时候属于低电量
NSLog(@"minLevel:%ld",minLevel);
BOOL canAutoProceed = [selfshouldproceesdWithMinLevel:minLevel];
if (canAutoProceed) {
NSLog(@"满电量,充电状态");
}else{
if (prompt) {
UIAlertController* alert = [UIAlertControlleralertControllerWithTitle:@"提示"
message:@"低电量,是否继续执行?"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* cancelAction = [UIAlertActionactionWithTitle:@"取消"style:UIAlertActionStyleDefaulthandler:nil];
[alert addAction:cancelAction];
UIAlertAction *OKAction = [UIAlertActionactionWithTitle:@"确定"style:UIAlertActionStyleDefaulthandler:^(UIAlertAction * action) {
NSLog(@"执行耗电操作");
}];
[alert addAction:OKAction];
[self presentViewController:alert animated:YEScompletion:nil];
}else{
NSLog(@"不开启低电量模式");
}
}
}
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSUserDefaults *defaults = [NSUserDefaultsstandardUserDefaults];
[defaults setBool:YESforKey:@"promptForBattrey"];//设置是否开启低电量提示
[defaults setInteger:30forKey:@"minBatteryLevel"];//设置level数值,判断什么时候属于低电量
}