ContentObserver (C) をホストするサービス (S) を作成しました。C は、一部のデータを追跡し、データベースに加えられた変更をログに記録します (D)。
S には、時間間隔で D の内容をファイルにダンプするタイマーもあります。
私は自分の電話でサービスを実行していますが、しばらくの間 (数時間程度) は問題ないようです。その後、突然、データに加えられた変更の記録を停止し、ファイルへのダンプを停止します。データを変更して (C で onChange を引き起こします)、電話をブラウジングしてデバイスを起動させようとしましたが、何も起こりませんでした。サービスはまだ非アクティブです。S はまだ実行中で、ラップトップに接続してもログにエラーは表示されません。
私の推測では、サービスはスリープ状態です (CPU スライスを取得していません)。ウェイクロックについて少し読んだことがありますが、電話を常に強制的に起動させたくありません。(). 別の方法は、T 分ごとに C の作業を実行する繰り返しアラームを作成することです (ポーリング)。ユーザーは更新の間にデータを変更 (特に削除) できるため、ContentObservers のアイデアがより気に入っています。ContentObserver を使用すると、時間間隔のスナップショットだけでなく、すべての変更を取得できます。
定期的にサービスを起動する方法についてのアイデアはありますか?
よろしくフレデリック