読者です 読者をやめる 読者になる 読者になる

Satomi and Dogs

バーチャルな世界に住んでいた料理好きSatomiが美味しいご飯と犬と動物たちと牧草に囲まれた生活を目指す日記です

iOS でアプリを Background Mode で動かし、Background fetch をする

まず

Screen Shot 2015-09-11 at 10.33.23.png

次に

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
・
・
    /* Background fetch */
    UIApplication.sharedApplication().setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum)
    /* END: Background fetch */
    return true
}

↑の記述がないと動きません。

処理内容を書きます

````swift:AppDelegate.swift func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {

    // ここに処理内容
    println("Background fetch foo")

    completionHandler(UIBackgroundFetchResult.NewData)

} ````

completionHandlerで、UIBackgroundFetchResult.NoData、UIBackgroundFetchResult.Failed、UIBackgroundFetchResult.NewDataのいずれかのステータスを返します。

確認

Debug > Simulate Background Fetch でシミュレーターを動かします。

Screen Shot 2015-09-11 at 10.56.54.png

動きました。

Screen Shot 2015-09-11 at 11.06.45.png

シミュレーター上でアプリをバックグラウンド状態にしても動きます。