我解释了我的场景:我有一个应用程序可以在自己的数据库中保存一些"联系人"取自设备。
让我们说:
在第3点,我的应用必须知道发生了什么事情,并且可能删除了联系人" Mark Smith"来自它的DB。
因此,为了听取ContactsContract.Contacts
更改,我使用了ContentObserver
。
我读到我应该在ContentObserver
注册onResume()
并在onPause()
取消注册;当然,遵循此规则,ContentObserver
在我的方案中不起作用,因为当用户打开设备联系人列表时,我的应用会调用onPause()
并取消注册我的ContentObserver
,所以当用户回到我的应用程序,我的应用程序不知道ContactsContract.Contacts
上发生了什么变化。
根据您的经验,我可以在ContentObserver
注册onCreate()
并在onDestroy()
取消注册吗?
我阅读的所有地方都使用ContentObserver
和onResume()
管理onPause()
以避免内存泄漏。
谢谢你们。