iOSのバックグラウンドフェッチ機能を使用すると、バックグラウンドフェッチ間隔の最小値を指定できます。しかし、コードを連続して呼び出す間の実際の間隔は、iOSフレームワークによって決まります。
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
let data: String? = nil
do {
//fetch some data
if let data = getSomeNewData() {
/* use the completionHandler to talk to the system and tell us if the app fetched new data, or if no data was available. */
completionHandler(.newData)
} else {
completionHandler(.noData)
}
} catch {
print(error)
completionHandler(.failed)
}
}
も参照の質問:swift-ios-refreshing-app-data-when-in-background
別のオプションは、セットアップにアプリにアプリがに反応することができ、5分ごとに(サイレント)プッシュ通知を送信するサーバーです。
これは、バックグラウンドで何をしたいかによって異なります。 iOSは特定のタスクがバックグラウンドで発生することを許可します:[長時間実行タスクの実装](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#// apple_ref/doc/uid/TP40007072-CH4-SW4) –
おそらく、あなたのアプローチを再考する必要があります。 iOSは中断されたアプリケーションに特定の時間間隔の実行をスケジュールさせません。タスクの性質は何ですか?サーバーのプッシュなど、別の方法で起動する可能性があります。 – Paulw11
この記事を読む:https://blog.newrelic.com/2016/01/13/ios9-background-execution/ –