我想在iPhone电池iPhone电池耗尽时执行一些代码。
会叫func applicationWillTerminate(_ application: UIApplication) {
吗?如果没有,那么是否存在其他任何方式来跟踪此问题?预先感谢。
答案 0 :(得分:2)
不支持此功能,而是必须确定电池电量何时低到需要运行代码的时间。
您可以做的是监听通知batteryLevelDidChangeNotification
,该通知是通过激活监视来完成的,请参见isBatteryMonitoringEnabled
就像文档中提到的那样,每分钟发送通知不超过一次,因此您必须确定电池电量足够低以至于几乎被耗尽,然后执行代码。
我不知道这是怎么回事,根据我的亲身经历,我发现我的手机在5%以下的情况下可以存活很长时间,但在低于10%的情况下很快就会死掉
答案 1 :(得分:1)
您可以使用以下代码段:
func startObservingBatteryDrainage(){
if UIDevice.current.isBatteryMonitoringEnabled && (UIDevice.current.batteryState == .unplugged || UIDevice.current.batteryState == .unknown){
if UIDevice.current.batteryLevel < 0.1{
NotificationCenter.default.addObserver(self, selector: #selector(funcWhenBatteryIsAlmostDrained), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
}
}
}
@objc func funcWhenBatteryIsAlmostDrained(){
//do stuff
}