希望延长iPhone电池寿命的用户可以在“设置>电池”下启用低功耗模式。在低功耗模式下,iOS通过制定一定的节能措施来节省电池寿命。例如,系统可以:
- 降低CPU和GPU性能
- 暂停自主活动和背景活动,包括人际关系
- 降低屏幕亮度
- 减少自动锁定设备的超时时间
- 禁用邮件提取
- 禁用运动效果
- 禁用动画墙纸
当电池电量再次上升到足够的电量时,该模式将自动禁用。
当低功耗模式处于活动状态时,应用程序应采取其他步骤帮助系统节能。例如,你的应用程序可以减少动画的使用,降低帧速率,停止位置更新,禁用同步和备份,等等。低功耗模式是运行iOS 9及更高版本的iphone的一项功能。
注册电源状态通知
当设备的电源状态(低功耗模式已启用或禁用)更改时,您的应用程序可以注册以接收通知。这些通知将发布在全局调度队列中 请参阅 Dispatch Queues 中 Concurrency Programming Guide.
要注册电源状态通知,请将消息addObserver:selector:name:object:发送到应用程序的默认通知中心(NSNotificationCenter的实例)。将选择器传递给它以调用和NSProcessInfoPowerStateDidChangeNotification,如清单7-1所示。
一旦您的应用程序收到电源状态更改的通知,它应该查询isLowPowerModeEnabled以确定当前电源状态。见清单7-2。如果低功耗模式处于活动状态,则应用程序可以采取适当步骤减少活动。否则,它可以恢复正常操作。
清单7-1注册电源状态更改通知
[[NSNotificationCenter defaultCenter] addObserver:self
selector: @selector(yourMethodName:)
name: NSProcessInfoPowerStateDidChangeNotification
object: nil];
确定电源状态
您的应用程序可以通过访问NSProcessInfo类的isLowPowerModeEnabled属性随时查询当前电源状态,如清单7-2所示。此属性包含一个布尔值,指示是启用还是禁用低功耗模式。
清单7-2访问设备的电源状态
if ([[NSProcessInfo processInfo] isLowPowerModeEnabled]) {
// Low Power Mode is enabled. Start reducing activity to conserve energy.
} else {
// Low Power Mode is not enabled.
};
如果设备的电源状态未知或设备不支持低电源模式,则此属性的值始终为“否”。