2015-08-26 43 views
0

当电池电量低于20%时,我需要手机发出哔哔声。背景中获取电池信息的最优雅方式是什么?

我只是不知道如何让我的代码在后台运行。我曾尝试过: applicationDidEnterBackground'(application: UIApplication)

但它只在应用程序进入后台时检查电池一次;它不会更新。

我知道如何获得电池充电。这是我所拥有的:

var power = Float() 
func batteryLevel() { 
    power = UIDevice.currentDevice().batteryLevel 
    if power < 0.2 { 
     println("Beep") 
    } 
} 

我该如何在后台定期运行?有一堆箍可以跳过吗?

+0

如果你这样做的话,你的应用不太可能通过苹果的评论... – idmean

+0

对不起,我还是一个相对较新的开发者。为什么是这样? – bkwebhero

+0

因为你的应用程序会以某种方式尝试监视系统。 Apple不希望应用程序执行某些操作。但这只是我,可能苹果在这种特殊情况下感觉不同。 (如果Apple留下了一个方法来实现这一点。) – idmean

回答

0

你可以通过检查的NSTimer每隔x分钟:

NSTimer.scheduledTimerWithTimeInterval(10, target: self, selector: Selector("checkBattery"), userInfo: nil, repeats: true) 

这10分钟后计时器调用checkBattery方法,并等待10分钟。

+0

这会去applicationDidEnterBackground“(应用程序:UIApplication的)? – bkwebhero

+0

是的,这非常好 – Christian

+0

这只适用于当我将应用程序带回前台时出于某种原因。它会让我在应用程序重新打开后很快从背景中获得的所有哔声。 – bkwebhero

0

如果您的应用/可以使用任何可用的背景模式,那么你可以启用UIDeviceBatteryLevelDidChangeNotification但是这取决于你的应用程序在后台模式下运行的能力。

相关问题