2015-08-26 42 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但是這取決於你的應用程序在後臺模式下運行的能力。

相關問題