0

一段时间以来,我一直在努力解决这个问题。添加联系人时不会触发 Intent 操作(据我所知)。我有什么选择来解决这个问题?

以下是我一直在玩的一些想法:

  1. 首先,我使用时间戳记录了用户位置,并定期扫描联系人数据库并将新条目添加到我自己的带有时间戳的数据库中。然后我可以比较这些并尝试找到一个体面的匹配。我不喜欢这种方法,因为它很容易出错。
  2. 最近我一直在查看联系人数据库的 ContentObserver,但我不确定如何设置它以便它不断观察,而不仅仅是当我的应用程序处于焦点时。也许在服务中?关于内容观察者的生命周期的文档对我来说不是很清楚,即它是否在注册它的服务/活动死亡后死亡?

所以我真正想要的是一种无缝的方式来记录当我的应用程序安装在设备上时用户在何时何地添加联系人。应用程序应该处于焦点/运行状态是不够的。

4

1 回答 1

0

你的第二个想法是正确的。正如您正确猜测的那样,观察者需要在服务中。在 onCreate() 中注册观察者。您将在 contentObserver 的 onChange 中使用 contentProvider。您需要保持上次使用共享首选项读取数据库的时间。请注意在共享首选项中存储的时间之后条目的更改。现在将共享偏好的时间更新为当前时间。同时在 onDestroy() 中取消注册内容观察者。

于 2013-07-01T07:15:21.727 回答