我正在开发一个Android应用程序,需要知道何时添加/更新/删除联系人。
因此,我阅读了几篇文章。我了解到我们可以通过内容观察器在联系人更改时得到通知,但无法知道哪些联系人已被添加/更新/删除。因此,我阅读了官方API并准备了我的设计以捕获特定的联系人。
所以我一开始想的是
- 我们将存储所有联系人的ID、删除标志和版本号
- 每当联系人变化时,我将获取我的表格行数和Android系统的行数。
- 如果我的行数小于系统的行数,则表示联系人已被删除。
- 如果我的行数大于系统的行数,则表示联系人已被添加。
- 如果不是这些情况,则表示其中一个联系人的版本已更改。
我还学到Android不会在用户删除联系人时直接删除该联系人,而是将删除标志设置为0。因此,在这些情况下,行数将不变。
正如官方文档所述,Android还会多次更改联系人的行ID。那么我们该如何唯一地识别它们呢,比如通过查找URI,并且如果不能,则也必须为此放置观察者。
所以我想知道上述内容是否正确?当联系人被添加时,它会被添加到光标的最后一行还是不会,也就是说,如果我检查系统数据库中联系人的最后一行,它会给我添加的联系人还是不会。