了解安卓联系人的架构
我正在开发一个Android应用程序,需要知道何时添加/更新/删除联系人。
所以我读了几篇帖子。我知道,每当联系人发生更改时,我们都可以通过内容观察器获得通知,但是我们无法获得已添加/更新/删除的联系人。因此,我已经阅读了官方API,并准备了我的设计如何捕获该特定联系人。
所以我一开始的想法
- 我们将存储所有联系人ID,已删除的标志和版本
- 每当联系人更改时,我都会从Android系统获得表的行数和行数。
- 如果我的行计数小于系统行计数,则联系人已被删除。
- 如果我的行计数大于系统行计数,则表示已添加联系人。
- 如果这些不是这种情况,那么其中一个联系人版本已更改。
我还了解到,如果联系人被用户删除,Android不会删除它,但它在已删除的标志上设置了0。因此,在这些情况下,行计数将相同。
Android 还会多次更改联系人的行 ID,如官方文档中所述。那么我们如何像查找uri一样唯一地识别它们,如果不是,那么我们也必须为此放置观察者。
所以我想知道以上是否正确?在添加联系人的情况下,是否会将其添加到光标的最后一行,或者不意味着如果我检查系统数据库的最后一行以获取联系人,它将为我添加或不添加联系人。