我正在编写一个备份应用程序,并且需要知道联系人数据库中的哪些记录已更新,以便我只能备份这些记录。我查看了文档,似乎ContactsContract.RawContacts类中有一个“DIRTY”常量字段,该字段应该设置为“1”,用于更新的行。但是我不清楚这个字段何时会被清除为“0”。有人可以提供我如何使用这个示例代码?该字段是否可用于确定是否添加或更新了联系人? 如果这不是实现我想要做的事情的正确方法,任何人都可以以另一种方式向我建议。我也知道,我可以使用RegisterContentObserver()调用来识别联系人数据库中的任何变化,但这将需要我的应用程序始终在后台运行,这太昂贵了,我不想做那。 如果在添加或更新各种联系人时无法提取时间戳,那也是完美的,但我找不到如何做到这一点。 任何帮助非常感谢。如何确定联系人数据库中的哪一行已更新
2
A
回答
0
我已经看过文档,并且似乎在ContactsContract.RawContacts类中有一个“DIRTY”常量字段,应该为更新的行设置为“1”。但是我不清楚这个字段何时会被清除为“0”。
以我的经验,每当有某种形式的“脏”指标,它是备份/同步应用程序的责任重置一旦数据备份/同步操作过程中已成功提交。
但是,当使用多个应用程序时 - 第一个在数据更新后随时运行将重置该标志,而下一个应用程序不会找到任何要备份/同步的内容。
在这种情况下,如果您需要用户能够使用“同步”应用程序(例如),但您也希望进行“备份”操作,那么注册ContentObserver将有更好的用途,并且没有任何理由如果正确实施,为什么这对资源应该是“昂贵的”。
编辑:虽然没有'时间戳',但有一个'VERSION'字段被更新(当'DIRTY'被设置时)。如果您备份此字段,则可以简单地设置“DIRTY”标志,并将联系人数据库中的当前VERSION与最近的备份进行比较。
+0
非常感谢您的回复。我将检查“VERSION”字段的更改。这似乎比注册ContentObserver更简单。 – AnilV 2010-12-08 06:05:27
相关问题
- 1. 在android如何知道该联系人被删除/更新/添加和哪个联系人已新添加
- 2. 如何在android中更新sql lite数据库中的联系人?
- 3. 常量联系人 - 更新联系人
- 4. 如何更新联系人而不删除已存储的数据?
- 5. 联系人数据库
- 6. 如何更新Google共享联系人(外部联系人)
- 7. 如何管理数据库中的联系人关系
- 8. 如何更新Android联系人的值
- 9. 如何使用codeigniter正确更新数据库中的一行
- 10. 如何聆听联系人数据库中的更改并获取数据
- 11. 如何在联系人中设置关系数据库
- 12. 更新联系人中的联系人号码,iphone
- 13. 如何仅查找联系人框架中已更新的联系人的标识符或项目
- 14. 如何知道在android中更新了哪个特定联系人?
- 15. 确定哪个表在数据库级触发器中已更新
- 16. 如何更新现有联系人?
- 17. 如何更新Android联系人公司?
- 18. 如何检索添加到联系人数据库的新联系人的数量
- 19. 联系人写入联系人数据库 - Android 2.1
- 20. 如何确定哪一列更新?
- 21. 联系人中的SIM卡联系人收件人数据.CONTENT_URI
- 22. 如何在尝试添加新联系人时汇总联系人数据?
- 23. Android:联系人的数据库结构
- 24. 更新原始联系人
- 25. Office 365更新联系人
- 26. Android - 更新联系人
- 27. 自己的数据库中的自定义联系人
- 28. 从数据库中保存的联系人更新Listview的问题android
- 29. Android中的联系人更新
- 30. Android中的联系人更新信息
user887304您是如何解决您的问题的? – rakesh 2014-01-05 10:32:27