60 秒ごとにジョブを実行する iOS アプリにバックグラウンド プロセスを実装する必要があります。これはアプリがフォーカスされているときにのみ実行できることはわかっていますが、アプリを閉じた後、バックグラウンドでこのジョブの実行を終了させたいと考えています。dispatch_async
GCD を使用して、またはを使用して 60 秒ごとにジョブを非同期的に呼び出すタイマーをディスパッチしますbeginBackgroundTaskWithExpirationHandler
。
どちらの方法が最適なのか、それとも本質的に同じなのか疑問に思っています。beginBackgroundTaskWithExpirationHandler
アプリがフォアグラウンドの状態でも、ジョブを実行するために使用しても問題ありませんか? または、アプリの状態が変化したときにジョブをキャンセルしてから、バックグラウンド タスクとしてジョブを再起動する方がよいでしょうか?