目的
iOS アプリでバックグラウンドに遷移したとき、フォアグラウンドに遷移したときにある処理を実行する方法を調べました。
Notification 一覧
イベントタイミング | Swift | Objective-C |
---|---|---|
フォアグラウンドになる直前 | NSNotification.Name.UIApplicationWillEnterForeground | UIApplicationWillEnterForegroundNotification |
アクティブになったら | NSNotification.Name.UIApplicationDidBecomeActive | UIApplicationDidBecomeActiveNotification |
アクティブでなくなる直前 | NSNotification.Name.UIApplicationWillResignActive | UIApplicationWillResignActiveNotification |
バックグランドになったら | NSNotification.Name.UIApplicationDidEnterBackground | UIApplicationDidEnterBackgroundNotification |
終了する直前 | NSNotification.Name.UIApplicationWillTerminate | UIApplicationWillTerminateNotification |
Objective-C で実装
アクティブでなくなる直前、hogehoge1
を呼び出します。
フォアグラウンドになったとき、hogehoge2
を呼び出します。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hogehoge1) name:UIApplicationWillResignActiveNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(hogehoge2) name:UIApplicationDidBecomeActiveNotification object:nil];
また、登録したイベントを削除します。
[[NSNotificationCenter defaultCenter] removeObserver:self];
Swift で実装
アクティブでなくなる直前、hogehoge1
を呼び出します。
バックグラウンドになったとき、hogehoge2
を呼び出します。
NotificationCenter.default.addObserver(self, selector: #selector(self.hogehoge1), name: NSNotification.Name.UIApplicationWillResignActive, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.hogehoge2), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)