2015年11月2日月曜日

アプリをバックグランドにした時などに処理を行う

使用中のアプリを別のアプリに切り替えた時、また別のアプリから戻ってきた時に特定の関数を呼び出す方法。

NSNotificationCenterクラスを使うようだ。
引数nameにUIApplication〜と指定することでどういうタイミングでselectorの関数をコールするか選択する。

別のアプリから戻ってきた時(アプリ起動時にも)
        NSNotificationCenter.defaultCenter().addObserver(self,
            selector: "forActive",
            name: UIApplicationDidBecomeActiveNotification,
            object: nil)

別のアプリに切り替えた時        
        NSNotificationCenter.defaultCenter().addObserver(self,
            selector: "forBackground",
            name: UIApplicationDidEnterBackgroundNotification,
            object: nil)

以下のような値が用意されている。
調べたらもっとあるようだが、だいたい以下のもので事足りるのではないか?
アプリがどうかなる直前、直後などの細かい状態の変化でいろいろ重複して呼ばれるのはViewDidLoadやViewWillAppear関数なんかと一緒ね。

  • アプリがアクティブになった時/別のアプリから戻ってきた時
    • UIApplicationDidBecomeActiveNotification
  • アプリがバックグランドになる時
    • UIApplicationDidEnterBackgroundNotification
  • アプリ起動直後
    • UIApplicationDidFinishLaunchingNotification
  • アプリがアクティブになる直前
    • UIApplicationWillEnterForegroundNotification
  • アプリがアクティブでなくなる直前
    • UIApplicationWillResignActiveNotification
  • アプリ終了直前
    • UIApplicationWillTerminateNotification
  • デバイスの向きが変わる直前
    • UIApplicationWillChangeStatusBarOrientationNotification
  • デバイスの向きが変わった直後
    • UIApplicationDidChangeStatusBarOrientationNotification
参考:
Objective-C:NSNotificationCenterでアプリ起動・終了時にメソッドを呼び出す

0 件のコメント:

コメントを投稿