アプリで iOS 7 のバックグラウンド更新機能を使用できるようにするにはどうすればよいですか? 一部のアプリは既にそれを行っていることに気付きましたが、すべてが自動化されているわけではないようです。
1 に答える
What's New in iOS 7によると、探しているものは次のように説明されています。
サーバーに接続してコンテンツを定期的に更新するアプリは、システムに登録して定期的に起動し、バックグラウンドでそのコンテンツを取得できます。登録するには、アプリのファイルに
UIBackgroundModes
キーと値を含めます。次に、アプリの起動時に メソッドを呼び出して、更新メッセージを受信する頻度を決定します。最後に、アプリのデリゲートにもメソッドを実装する必要があり ます。fetch
Info.plist
setMinimumBackgroundFetchInterval:
application:performFetchWithCompletionHandler:
内部ではapplication:performFetchWithCompletionHandler:
、completionHandler を呼び出さなければならない前に、必要な処理の実行を完了するのに合計 30 秒かかります。できるだけ早くポーリングを実行し、実行が完了したらすぐに completionHandler を呼び出すことをお勧めします。割り当てられた 30 秒以内に呼び出さないと、アプリのバックグラウンド フェッチが中断されます。または、各フェッチに時間がかかり始めると、アプリが将来バックグラウンド フェッチを実行する機会が少なくなります。
または、プッシュ通知を受信したときに追加のコードを実行する場合:
プッシュ通知を使用して新しいコンテンツが利用可能であることをユーザーに通知するアプリは、バックグラウンドでコンテンツを取得できます。このモードをサポートするには 、アプリのファイルに
UIBackgroundModes
キーと値を含めます。 アプリのデリゲートにもメソッドを実装する必要があり ます。remote-notification
Info.plist
application:didReceiveRemoteNotification:fetchCompletionHandler: