背景獲取 (Background Fetch)可用在:有個情境是想在使用者開啟App前,就將所需要的資料從網路載入完畢,當使用者打開App後就會發現,顯示的資料都是最新的,而不用再重新整理來獲取最新資料。
看前人教學得知有三件事情要做:
step1:
專案Capabilities設定Background Modes打開Background fetch。
/** Theme: Background Fetch IDE: Xcode 8 Language: Objective C Date: 106/06/06 Author: HappyMan Blog: https://cg2010studio.wordpress.com/ */ // step2 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum]; } // step3 -(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { NSLog(@"performFetchWithCompletionHandler"); }
若要測試是否能運作,在工具列操作Debug的Simulate Background Fetch,點下去後原本App在前景就會強制跑到背景,若有在performFetchWithCompletionHandler設中斷點,就會發現App會執行這函式。
至於觸發時機,就要看系統怎麼判定你的App要多久喚醒一次,若它發現使用者時常在晚上九點開啟你的App,也許系統就會在晚上八點五十五分喚醒你的App,於是你可以執行載入最新資料的動作。
隨意留個言吧:)~