2017-08-04 17 views
0

私のアンドロイドアプリでは、2分ごとにローカルデータベースをチェックインするバックグラウンドサービスを使用しています。今、私は同じことをイオスで実装したいので、アンドロイドのサービスと同等のものがあることを知りたいと思います。iosで長時間実行されているバックグラウンドタスク

答えて

1

いいえ、iOS相当のサービスはありません。しかし、あなたがやろうとしていることは、背景モードで実現できます。具体的には、fetchバックグラウンドモードです。

背景モードを有効にするには、プロジェクト設定 - >機能 - >背景モードに移動し、Background fetchを有効にします。良い機会が生じた場合

次に、あなたのUIApplicationDelegateあたりBackground Modes documentation

として機能

// Swift 
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 

// Objective-C 
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler; 

を実装し、システムが復帰したり起動してアプリをバックグラウンドにし、アプリデリゲートのアプリケーションを呼び出しています。 performFetchWithCompletionHandler:メソッド。この方法を使用して、新しいコンテンツを確認し、コンテンツが利用可能であればダウンロード操作を開始します。新しいコンテンツのダウンロードが完了したらすぐに、提供された完了ハンドラブロックを実行し、コンテンツが利用可能かどうかを示す結果を渡す必要があります。このブロックを実行すると、アプリを一時停止状態に戻して電力使用量を評価できることがシステムに伝えられます。少量のコンテンツをすばやくダウンロードし、ダウンロード可能なコンテンツを正確に反映しているアプリは、コンテンツのダウンロードに時間がかかったり、コンテンツが利用可能だったものの、今後実行時間がかかる可能性が高くなります何もダウンロードしない。バックグラウンドモードを使用して

は、あなたのアプリがウェイクアップされるか、殺されたか、デバイスが再起動された場合でも、タスクを実行するために立ち上げ - ユーザーがアプリを強制終了を除いて。

+0

回答をいただきありがとうございます。実装について検討します。 – Danger

関連する問題