うちのいぬ Tech Blog

Tech Blog of Uchinoinu/My dog

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

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