2016-11-01 3 views
0

アプリがバックグラウンド状態のときにタスクを実行する必要があります。たとえば、アプリがバックグラウンド状態になると、5分ごとに(この時点ではアプリがバックグラウンドになっています)、タスクが実行されます。 私は場所を変更しようとしましたが、正確な場所を使用できません(バッテリを消費するため)、重要な場所が変更されましたが、ユーザーが移動しなかったり、変更しなかったりすると、バックグラウンドタスクスウィフト3.0 iOS

助けてもらえますか?

+0

これは、バックグラウンドで何をしたいかによって異なります。 iOSは特定のタスクがバックグラウンドで発生することを許可します:[長時間実行タスクの実装](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html#// apple_ref/doc/uid/TP40007072-CH4-SW4) –

+1

おそらく、あなたのアプローチを再考する必要があります。 iOSは中断されたアプリケーションに特定の時間間隔の実行をスケジュールさせません。タスクの性質は何ですか?サーバーのプッシュなど、別の方法で起動する可能性があります。 – Paulw11

+0

この記事を読む:https://blog.newrelic.com/2016/01/13/ios9-background-execution/ –

答えて

0

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分ごとに(サイレント)プッシュ通知を送信するサーバーです。

関連する問題