我有一个更新包含服务配置数据的表的活动。我正在使用 SimpleCursorLoader 和 SupportLoaderManager 来更新该 Activity 中的列表视图。我在活动的 onDestroy 中销毁了加载程序。这可能不相关,因为即使没有访问此活动,我看到的问题也会发生。
我也有一项服务,它将 URI 上的 ContentObserver 注册到在上面的 Activity 中修改的表。它读取其配置,设置自己并在服务的 onCreate 中的该表上注册一个 ContentObserver。在服务的 onDestroy 中,该侦听器未注册。
这只是我系统中的几个数据库/表中的一个。我看到的是,当我对完全不同的表进行更新时,会触发此配置 URI 上的 ContentObserver。Authorities 完全不同,它们与不同的 SqlLite 数据库交互,它们甚至在应用程序的不同进程中运行。我删除了所有我能找到的会触发 ContentObservers 的“notifyChange”调用,但它们仍在触发。
我的问题是,有没有办法找出谁在调用导致 ContentObserver 触发的 notifyChange?我的应用程序之外的系统是否有任何理由通知观察者一个 URI?我正在尝试追踪它,但不知道通知来自何处,我正在撞墙。