迅速观察电池电量,

时间:2019-05-24 08:11:32

标签: ios swift battery

我想在iPhone电池iPhone电池耗尽时执行一些代码。

会叫func applicationWillTerminate(_ application: UIApplication) {吗?如果没有,那么是否存在其他任何方式来跟踪此问题?预先感谢。

2 个答案:

答案 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

    }