对iPhone上的低功耗模式做出反应

希望延长iPhone电池寿命的用户可以在“设置>电池”下启用低功耗模式。在低功耗模式下,iOS通过制定一定的节能措施来节省电池寿命。例如,系统可以:

  • 降低CPU和GPU性能
  • 暂停自主活动和背景活动,包括人际关系
  • 降低屏幕亮度
  • 减少自动锁定设备的超时时间
  • 禁用邮件提取
  • 禁用运动效果
  • 禁用动画墙纸

当电池电量再次上升到足够的电量时,该模式将自动禁用。
当低功耗模式处于活动状态时,应用程序应采取其他步骤帮助系统节能。例如,你的应用程序可以减少动画的使用,降低帧速率,停止位置更新,禁用同步和备份,等等。低功耗模式是运行iOS 9及更高版本的iphone的一项功能。

注册电源状态通知

当设备的电源状态(低功耗模式已启用或禁用)更改时,您的应用程序可以注册以接收通知。这些通知将发布在全局调度队列中 请参阅 Dispatch QueuesConcurrency 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.
};

如果设备的电源状态未知或设备不支持低电源模式,则此属性的值始终为“否”。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容