サービスの構成データを保持するテーブルを更新するアクティビティがあります。SimpleCursorLoader と SupportLoaderManager を使用して、そのアクティビティのリストビューを更新しています。アクティビティの onDestroy でローダーを破棄します。私が見ている問題は、このアクティビティにアクセスしなくても発生するため、関係ない可能性があります。
上記のアクティビティで変更されたテーブルへの URI に ContentObserver を登録するサービスもあります。構成を読み取り、それ自体をセットアップして、Service の onCreate のそのテーブルに ContentObserver を登録します。サービスの onDestroy では、そのリスナーは登録解除されています。
これは、システムにあるいくつかのデータベース/テーブルの 1 つにすぎません。私が見ているのは、まったく別のテーブルを更新すると、この構成 URI の ContentObserver がトリガーされていることです。オーソリティはまったく異なり、さまざまな SqlLite データベースと対話し、アプリケーション内のさまざまなプロセスで実行されています。ContentObservers をトリガーする可能性のある "notifyChange" 呼び出しをすべて削除しましたが、まだ起動しています。
私の質問は、ContentObserver を起動させている notifyChange を誰が呼び出しているかを調べる方法はありますか? アプリケーションの外部のシステムには、オブザーバーに URI を通知する理由がありますか? 私はそれを追跡しようとしていますが、通知がどこから来ているのか手掛かりがなく、壁にぶつかっています.