2014-01-23 35 views

回答

1

限制是如下:

  • 10分鐘爲iOS6的
  • 3分鐘爲iOS7

就在您的應用程序委託實現:

- (void)applicationDidEnterBackground:(UIApplication *)application { 
    UIApplication *app = [UIApplication sharedApplication]; 
    __block UIBackgroundTaskIdentifier bgTask = 0; 
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
       [app endBackgroundTask:bgTask]; 
       bgTask = UIBackgroundTaskInvalid; 
      }]; 

}

經過600秒(iOS6)或180秒(iOS7)後,調用過期處理程序 - 您必須立即完成 - 任何耗時的任務或應用程序都不會崩潰。

1

我建議你看一看Background Execution and Multitasking,簡要:

大多數應用程序移動到暫停在進入 背景後不久。在 只允許向用戶提供重要的服務應用程序繼續運行的時間

0

該應用程序在後臺運行任何代碼量。大多數應用程序在進入暫停狀態時會暫時進入此狀態。但是,請求額外執行時間的應用可能會保持一段時間。另外,直接在後臺啓動的應用程序將進入此狀態而不是非活動狀態。有關如何執行代碼,而在後臺,看到信息

主編的「Background Execution and Multitasking」:

對於某些類型的後臺執行的

支持必須事先通過使用它們的應用程序中聲明。在Xcode 5及更高版本中,您可以從項目設置的功能選項卡聲明您的應用程序支持的背景模式。啓用背景模式選項可將UIBackgroundModes鍵添加到應用的Info.plist文件中。選擇一個或多個複選框會將相應的背景模式值添加到該鍵。表3-4列出了您可以指定的背景模式以及Xcode分配給應用程序的Info.plist文件中的UIBackgroundModes項的值。

相關問題