【发布时间】:2011-11-09 05:50:57
【问题描述】:
我正在运行一个应用程序,它可以在一夜之间对加速度计和陀螺仪数据进行采样。这是一项非常耗电的操作,我想教我的应用程序识别电池电量何时变低。
这是我的原型代码,它每 10 分钟检查一次电池电量
NSDate* date = [NSDate date];
if((int)([date timeIntervalSinceReferenceDate])%600 == 0)
{
UIDevice *myDevice = [UIDevice currentDevice];
[myDevice setBatteryMonitoringEnabled:YES];
float batLeft = [myDevice batteryLevel];
int batinfo=(batLeft*100);
[self postStatusMessageWithTitle:nil
description:[NSString stringWithFormat:@"%@ battery level: %i",[dateFormat stringFromDate:dateShow],batinfo]];
[myDevice setBatteryMonitoringEnabled:NO];
}
我的问题是:我是否需要将此行添加到代码的末尾:
[myDevice setBatteryMonitoringEnabled:NO];
电池检查似乎是在那里执行的,没有异步委托调用。将值设置为 NO 是否会因为不必在一夜之间监控电池电量而节省任何电池电量?将其设置为 NO 会破坏任何东西吗?
感谢您的任何意见!
【问题讨论】:
-
为什么不将其设置为“是”,让手机在电池电量耗尽时提醒您的应用?这不像是在持续进行民意调查。操作系统进行了一些优化,应该可以很好地调用委托方法。
标签: objective-c ios5 iphone-4 power-management