1. ホーム
  2. ios

[解決済み] アプリがバックグラウンドに入るのを検知するのに最適な方法は何ですか?

2023-08-03 10:34:50

質問

ビューコントローラで NSTimer を使用してコードを実行します。

アプリがバックグラウンドになったことを検知して、タイマーを一時停止するのに最適な方法は何ですか?

どのように解決するのですか?

アプリがバックグラウンドになったときに関心を持つ任意のクラスが通知を受け取るようにすることができます。 これは、これらのクラスをAppDelegateとカップリングする良い代替方法です。

前記クラスを初期化する際に

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillResignActive:) name:UIApplicationWillResignActiveNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appWillTerminate:) name:UIApplicationWillTerminateNotification object:nil];

通知への対応

-(void)appWillResignActive:(NSNotification*)note
{

}
-(void)appWillTerminate:(NSNotification*)note
{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillResignActiveNotification object:nil];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillTerminateNotification object:nil];

}