2017-08-04 64 views
0

在我的android應用中,我使用了一個後臺服務,每2分鐘在本地數據庫中檢查一次,如果發現某些未嘗試過的數據,它會嘗試將其同步到服務器。現在我想在ios中實現相同的功能,所以我想知道ios中是否存在與android服務相同的內容。ios中長時間運行的後臺任務

回答

1

不,沒有iOS等效的服務。但是,您試圖做的事情可以通過背景模式來實現。具體來說,fetch後臺模式。

要啓用背景模式,請轉到項目設置 - >功能 - >背景模式並啓用Background fetch

然後,就是你UIApplicationDelegate實現功能

// Swift 
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 

// Objective-C 
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler; 

Background Modes documentation

當一個好機會出現的時候,系統喚醒或啓動您的應用爲背景,並調用應用程序委託的應用程序: performFetchWithCompletionHandler:方法。如果內容可用,請使用該方法檢查新內容並啓動下載操作。一旦完成下載新內容,您必須執行提供的完成處理程序塊,並傳遞一個結果,指示內容是否可用。執行此塊會告訴系統它可以將您的應用程序移回掛起狀態並評估其用電量。快速下載少量內容並準確反映他們何時可以下載內容的應用程序比將需要很長時間下載內容的應用程序或聲明內容可用但後來可以執行的應用程序更有可能在未來獲得執行時間不下載任何東西。

使用背景模式,您的應用程序將被喚醒或啓動來執行任務,即使它被打死或設備被重新啓動 - 與用戶強制退出應用程序異常。

+0

感謝您的迴應,我會研究實施。 – Danger