Just My Life & My Work

Archive for 2017 年 06 月 09 日

[iOS] 背景獲取 (Background Fetch)

 

背景獲取 (Background Fetch)可用在:有個情境是想在使用者開啟App前,就將所需要的資料從網路載入完畢,當使用者打開App後就會發現,顯示的資料都是最新的,而不用再重新整理來獲取最新資料。

前人教學得知有三件事情要做:

step1:

專案Capabilities設定Background Modes打開Background fetch

背景獲取 (Background Fetch).png

/**
 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會執行這函式。

背景獲取 (Background Fetch)2.png

至於觸發時機,就要看系統怎麼判定你的App要多久喚醒一次,若它發現使用者時常在晚上九點開啟你的App,也許系統就會在晚上八點五十五分喚醒你的App,於是你可以執行載入最新資料的動作。

參考:Background Modes Tutorial: Getting Started

標籤雲

%d 位部落客按了讚: