2014-03-31 44 views
2

我想我的運行過程中脫穎而出地面和後臺運行進程continuously.I've執行以下代碼如何在背景ios7

self.updateTimer = [NSTimer scheduledTimerWithTimeInterval:10.0 
                target:self 
                selector:@selector(repeatedMethod) 
                userInfo:nil 
                repeats:YES]; 

self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ 
    NSLog(@"Background handler called. Not running background tasks anymore."); 
    [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask]; 
    self.backgroundTask = UIBackgroundTaskInvalid; 
}]; 

前景是好的,但在後臺進程運行只是5分鐘,而不是超過這個。但是我希望它在後臺也能持續運行。請幫忙。

回答

1

即將發生這種情況,因爲completionHandler會在5分鐘後被調用。您無法在iOS中無限期地運行後臺進程,直到您使用UIBackgroundModes之一,並且依賴於您必須提供BackgroundMode功能(如果使用的話)它在你的應用程序中,否則蘋果會拒絕它。

例如,如果你使用「VOIP」 BackgroundMode你的應用程序應該提供「VoIP服務」,否則將被拒絕

+0

我想在後臺位置更新與mode.Along我想要做一些其他的任務。可它有可能 –

+0

也請提供一些鏈接以獲得連續位置更新。 –

+0

是的,有可能你應該使用「位置」後臺模式,正如蘋果文檔所說的關於這種背景模式:「該應用向用戶提供基於位置的信息,並要求使用標準的位置服務(而不是重要的更改位置服務)來實現此功能。「所以,在xcode中將backgroundmode設置爲「location」,並查看一些關於如何使用該backgroundmode的教程。還可以查找「後臺獲取」模式(僅在iOS7中可用) – hariszaman