私はCallLog.Callsコンテンツプロバイダの変更をリッスンするアプリケーションを構築しています。したがって、このコンテンツプロバイダのすべての変更は、アプリケーションのオブザーバに通知し、データが挿入されると変更されます。CallLog.Callsの変更を聞きます
しかし、問題が発生した場合、アプリが実行されていないとき、つまりアプリが実行されていない間に変更されたデータをキャプチャしないときに通知されます。
私の質問は、アプリケーションが実行されていない間に変更されたデータをキャプチャする方法はありますか?たとえば、私は8回の呼び出しを行い、アプリケーションは実行されていないため、8個の新しいデータがCallLog.callsコンテンツプロバイダに追加されています。アプリケーションが起動すると、この8つの新しいデータをキャプチャする方法はありますか?
ありがとうございます!
実際、私は着信または発信呼び出しで発砲されるContentObserverを持っています。しかし、アプリは実行時にのみ通知を待ち受けます。それを実行していないときに聞いていないので、私が行った呼び出しは、アプリが見逃している、つまり、アプリケーションはデータをキャプチャしません。とった?だから、私はアプリが動いたらチェックしたり聞いたりするかもしれない解決策を探しています。私はプロバイダのサイズを問い合わせて、プロバイダの最後のサイズを持つ変数と現在のサイズを持つ変数を宣言しようとしていました。それは良い解決策ですか? – rogcg
着信コールがない場合に応答できるインテントコールデータベースに新しいローがあるかどうかを確認することができます。 私は確かに着信コールインテントがあります。アプリケーションのマニフェストにレシーバが登録されていて、インテントフィルタがそのインテントを指定している場合は、アプリが起動します。あなたのアプリがバックグラウンドでそれを処理するためのサービスを起動させるにはおそらく最高です。 IntentクラスとTelephonyManagerクラスをチェックして、インテントがあるかどうかを確認します。 – techiServices
私はサービスを実装する必要があると思います。 – rogcg