Web サービスを介して現在のサーバーでローカル データベースを更新したいと考えています。サーバーにリクエストを送信し、Web サービスの出力を解析する方法を知っています。問題は、アプリが開いているか閉じているかに関係なく、この更新を 24 時間ごとに実行することです。出来るか出来ないか知りたいだけです。可能であれば、誰でもこれを行う方法を教えてください。
よろしくお願いします
Web サービスを介して現在のサーバーでローカル データベースを更新したいと考えています。サーバーにリクエストを送信し、Web サービスの出力を解析する方法を知っています。問題は、アプリが開いているか閉じているかに関係なく、この更新を 24 時間ごとに実行することです。出来るか出来ないか知りたいだけです。可能であれば、誰でもこれを行う方法を教えてください。
よろしくお願いします
アプリが開いている(フォアグラウンド)場合にのみUILocalNotifications
実行できます。これを使用して、一定期間後にイベントを発生させ、データベースを更新できます。
ただし、アプリが開かれていない場合は、データベースで変更を実行できません。アプリケーションが非アクティブな場合、Appleはデータベースを変更することを許可していないためです。
このリンクを確認してください :アプリがバックグラウンド モードの場合に使用できるサービスの種類
いいえ。アップルはそれを許可しません。
最新の状態を維持するための最善の努力として行う必要があります。ユーザーがあなたのものをダウンロードする確実な方法はありません。アプリがフォアグラウンドに保持され、3G カバレッジが良好であること (あなたを見て、T -モバイル)など
たまに更新する必要がある静的コンテンツを扱っている場合は、デバイスで最後に更新した日付を保持し (NSUserDefaults
頭に浮かぶ)、ユーザーがアプリを起動したときに、サーバーに「こんにちは、前回は」と尋ねます。更新したのはこれNSDate
です。何かご用意はありますか?」そして、それに応じて更新を実行します。
Apple がこれを許可していないため、バックグラウンドでこれを行うことはできません。
アプリが開いているときにこれを行うことができます。
データベースを初めて更新するときは、タイムスタンプを NSUserDefaults に保存し、次にアプリを開いたときに、現在のタイムスタンプが以前のタイムスタンプ (NSUserDefaults に保存されている) よりも大きい (24 時間) であることを確認してから、データベースを更新し、 NSUserDefaults のタイムスタンプを更新します。