2012-05-19 13 views
5

私は、ユーザーがその日にデータを入力し、次に特定の時点(夜中など)にユーザーのデータを入力するクライアント用のアプリケーションを作成していますその日はサーバーにアップロードする必要があります。iOSアプリケーションタスクがバックグラウンドで実行されるようにスケジュールする

したがって、アプリがバックグラウンドにある場合でも、深夜にアプリを実行する方法をスケジュールする必要があります。この方法では、収集したデータをサーバーと同期させ、変更をダウンロードします。

これを実現するには、常にバックグラウンドで(つまり10分以上)実行するようにアプリを設定してから、特定の時間後に機能を実行するようにスケジュールする必要があると思います。 performSelector: withDelay:を使用してこれを行いますか?または、アプリがバックグラウンドにあるため、より堅牢なものが必要ですか?

ありがとうございました!

+0

これにはどのような解決方法がありますか? –

答えて

0

あなたのアプリやあなたがやろうとしていることは、Appleの長時間のバックグラウンドタスクの必要条件ではありません。このドキュメントの「長時間実行するバックグラウンドタスクの実装」のセクションをご覧ください。Apple.

+0

これは良い点ですが、実際にはアプリは継続的な位置追跡の対象となります。真夜中のデータ同期の理由は、その日にユーザーがインターネットに接続できなくなる可能性が高いからです。だから、おそらく最良の選択肢は、主要なロケーションの変更を追跡することであり、インターネット接続のそれぞれの変更チェックである。ユーザーの信号が十分に強い場合、同期はそこから開始され、次に翌日までデータ同期をオフにすることができます。助けてくれてありがとう! – theDuncs

2

UILocalNotificationsをチェックアウトしている可能性があります。そのイベントが発生するようにスケジュールを設定し、バッジアイコンを設定して、何かを処理した(またはしなかった)ことをユーザーに知らせることができます。

に関する情報HERE

+0

私はユーザーにデータの同期について何も知らせたくないので、理想的には、(a)深夜のローカル通知をスケジュールし、(b)通知コードが実行される深夜にデータ同期を実行してから、画面上の通知。これは実現可能ですか?またはローカルの通知を使用するには、画面上でアラートを発生させる必要がありますか? – theDuncs

+0

ところで、あなたの助けてくれてありがとう!とても有難い。 – theDuncs

+0

私はあなたがユーザーに視覚的なインジケータなしでしようとしていることを行うことができると思う。 –

関連する問題