VOIP アプリケーションでは、setKeepAliveTimeout を使用して 10 分ごとに PING パケットをサーバーに送信しています。すべて正常に動作しますが、アプリケーションがフォアグラウンドになったときにハンドラーが呼び出されるのを停止する方法がわかりません。
例:タイムアウトを設定する方法は次のとおりです
[[UIApplication sharedApplication] setKeepAliveTimeout:600 handler:^{ [self backgroundHandler]; }];
バックグラウンド ハンドラー:
- (void)backgroundHandler
{
printf("10 minute time elapsed\n");
// do some action...
}
上記の関数は、アプリケーションがフォアグラウンドになった後でも呼び出されています。Apple のドキュメントを読んで、ハンドラーを nil に設定して停止しました。私はapplicationWillEnterForegroundで以下のように試しました
[UIApplication sharedApplication] setKeepAliveTimeout:600 handler:nil];
それでも10分おきに電話がかかってきます。これを処理する方法、フラグのみを使用する必要がありますか。
どんな助けでも本当に感謝しています。