現在、Web サービス同期を使用して Android アプリケーションを開発しており、すべてがスムーズに機能していますが、データベースへのデータ取得のためにバックグラウンド更新サービスを作成する必要があります。ここ数日、私はこれを達成する方法についての情報を探していましたが、多くの解決策を見つけたので、かなり混乱しました。
httpClient を起動する asyncTask を使用してデータをフェッチし、応答を解析してデータベースに保存します。その後、Activity を起動するインテントを送信します。シンプルなもの。
アプリケーションが実行されていないときにデータをフェッチするサービスが必要です。ユーザーがアプリケーションを起動すると、おそらくサービスを停止します。
スレッドスリープを使用して Service クラスを作成することはできましたが、これはかなり悪い解決策のようです。
私が見つけた別の解決策は、pendingIntent とブロードキャスト レシーバーを使用することです。
ブロードキャスト インテントの送信が十分に安全かどうかはわかりません。誰かが自分の電話をデバッガーに接続すると、すべてのインテント ブロードキャストが表示されますよね? つまり、彼/彼女は私のアプリケーションを台無しにする可能性があります (実際にはそうではないのに、新しいデータがフェッチされたことをアプリケーションに通知するブロードキャスト インテントを送信するなど)。
また、システムによってサービスが強制終了されたくありません。
これに対する簡単で効果的な解決策はありますか?私は自分のニーズに合ったものを見つけるのに少し苦労しています。自分で書くのはAndroidプログラミングにかなり慣れていません。多くの解決策を見つけましたが、どれが「正しい」解決策であり、最も効果的であるかは本当にわかりません。