联系人去重
来源:互联网 发布:黑魂3白狼捏脸数据 编辑:程序博客网 时间:2024/06/04 20:13
1.查询重复联系人时,progress的显示
1.1查询Rowcontacts表(RawContacts.DELETED+”= 0”),获得联系人总数。
1.2SearchDuplicatedThread,开线程去查询重复联系人。
1)查询account表,获得account list,遍历account 去查询RawContacts,
计算可以merge的联系人组。
获得map, name为key, value 为list,存放rawid。
2)根据map,筛选出list size >=2的(可根据list的size进行进度跟新),根据list中的id 查询raw_contact_entities 表,
获得EntityIterator(每个entity封装同名联系人的raw信息)。
3)根据EntityIterator获得 ArrayList mSubValues,
遍历该list,获得其元素的MIMETYPE,通过MIMETYPE形成phoneList and emailList 等信息。
进行封装形成一个ContactsInfo对象。
形成一个ContactsInfo 的List,封装为一个MergeContacts。
4)对于sim account的联系人需要考虑mergePhoneList/mergeEmailList
oneSimAnrCount/oneSimEmailCount
e.g.对于number:
通过遍历mergePhoneList 使用PhoneNumberUtils.compare()和data1进行比较。
最终比较mergePhoneList的size和oneSimAnrCount+1的大小。
若mergePhoneList.size()>oneSimAnrCount+1, 则认为不可merge, 不new MergeContacts.
ContactsInfo(1..1)
MergeContacts(1..n)
2.查重 ok,show MergeContactActivity
根据MergeContacts 的list去show UI。
MergeContacts 的mChecked属性对应checkbox是否被选中。
点击merge menu进行merge 操作.
3.dup 联系人merge 的过程
3.1 progress的显示, 根据list 的size的完成度去进行显示
3.2 开线程MergeDuplicatedThread执行merge
区分account进行操作:
if simcontacts,获取首个(i = 0)联系人信息作为sourceContact.
后续加入delRawIdsMap(
- 联系人去重
- 去重并且合并联系人
- 联系人去重的写法优化
- 安卓 短信去重(看好了,是短信去重,不是联系人去重)
- 从通讯录中导入联系人并去重
- 从通讯录中导入联系人并去重
- 去重
- 去重
- 去重
- 去重
- 去重
- 数组去重,json数组去重
- 数组去重,list去重
- android_内容访问者去访问联系人
- sql去重
- 词典去重数据
- SQL去重
- sql去重3
- HDU 5726 区间GCD=k的个数
- C++结构 和指针
- 人类新的通讯沟通方式-视频直播
- 1640叠放箱子
- JVM内存模型及垃圾回收算法
- 联系人去重
- 浅谈javabean,.内省机制
- 《等一个人咖啡》
- Ubuntu安装zsh
- Activity的四种启动模式及其应用场景
- JAVA笔记之继承
- Python 正则替换字符串
- 软考复习 Internet及应用
- JS/Jquery版本的俄罗斯方块(Tetris)