2011-12-10 21 views
0

データベースを頻繁に更新するアプリケーションがありますが、アプリケーションを終了するかアクティビティを切り替えると更新が停止します。サービスクラスを使用するとこの問題の解決に役立つと思われますが、サービスが自分のアクティビティをリフレッシュする方法やデータベースを更新する方法がわかりません。私の質問は、どのように私のデータベースを更新するためにサービスを使用するだろうか?私のデータベースが3つの文字列をデータベースに取り込むのを助けてくれます。バックグラウンドでデータベースを更新する

答えて

0

はい、これを継続的に実行する最適なソリューションは、タスクをサービスに入れることです。

ビューの更新については、どのAPIレベルを使用していますか? 3.x +を使用している場合は、データベースの変更時にビューが直ちに更新されるため、Loaderを調べると便利です。

他のすべてのAPIレベルの場合、1つの解決策は、アクティビティをサービスのリスナーとして登録することです。サービスがデータベース更新を完了すると、そのサービスのすべての登録済みリスナーにメッセージを送信します。ただし、これを行うときは、onResumeのリスナーとしてアクティビティを登録し、nullポインタの状況を避けるためにonPauseを登録解除する必要があります。

+2

IntentServiceを使用できます。 3つの弦を余分に渡します。複数のインテントを開始することができ、それらは連続して実行されます。更新はFIFOキューに積み重ねられ、提出のシーケンスでデータベースを更新する。 IntentServicesは自分自身を止めるので、あなたのアプリは終了して、彼らは実行し続けるでしょう。 –

関連する問題