android 4.0联系人分析—查找匹配
来源:互联网 发布:c语言循环链表 编辑:程序博客网 时间:2024/06/05 18:34
一、android 4.0 联系人过滤索引建立分析
联系人过滤索引的建立、修改是在新建、修改、删除或同步联系人的时候,触发ContactsProvider2更新联系人数据库中的search_index表的。
search_index表结构
(默认值)说明contact_id INTEGERY 跟contact表的ID关联content TEXT 联系人内容查找索引,包含单位、职位、邮件地址等,以空格分隔各个contentname TEXT 联系人姓名索引字段,包含多个索引,以空格分隔。
注:这将是我们查找内容的主要字段tokens TEXT 电话号码查找索引,多个电话间以空格分隔
建立索引的步骤:
1. ContactsProvider2的applyBatch把从界面传过来的事务提交到ContactsProvider2.onCommit处理
2. onCommit调用ContactsProvider2.updateSearchIndexInTransaction
3. updateSearchIndexInTransaction调用SearchIndexManager.updateIndexForRawContacts
4. updateIndexForRawContacts调用SearchIndexManager的内部方法buildIndex
5. 在buildIndex中会针对每个字段调用相应DataRowHandlerForXXX.appendSearchableData方法
我们需要关注的DataRowHandlerForStructuredName类的appendSearchableData
6. 最终会调用NameLookupBuilder的appendToSearchIndex建立多个索引
二、android 4.0 联系人查找匹配
android 4.0 contact filt sequence
1. 点击联系人查找界面,输入拼音首字母,会触发PeopleActivity的onAction方法
2. 在onAction中调用ContactBrowseListFragment的setQueryString方法
3. setQueryString调用restartLoader来启动Loader异步更新数据
4. 在Loader的回调接口onCreateLoader配置Loader的参数,包括查询的Uri等。
5. Loader启动后会触发ContactProvider2的query,其处理所有的联系人信息查询.
我们要关注的是queryLocal中的CONTACTS_FILTER分支。
6. 在ContactProvider2的appendSearchIndexJoin(StringBuilder, String…)方法中会建立查询SQLite数据库的SQL语句。
- android 4.0联系人分析—查找匹配
- android 4.0联系人分析—查找匹配
- android 4.0联系人分析—查找匹配
- android 4.0联系人分析—查找匹配
- android 4.0联系人分析—导入导出
- android 中查找获取联系人
- android Contacts 联系人分析
- android 根据短信地址匹配联系人姓名
- Android 匹配联系人号码长度修改方法
- 根据拼音首字母匹配汉字(电话本联系人查找)
- Android Contacts 联系人源码分析
- Android手机联系人数据库分析
- Android Contacts 联系人源码分析
- Android Contacts 联系人源码分析
- android开发 查找通讯录取得联系人信息
- Android关于联系人电话号码的查找
- android 通过手机号查找联系人的头像
- android开发 查找通讯录取得联系人信息
- VP8简介
- Qt 窗口圆角
- java采用Dom4j读写xml文件
- (转载)提高C#编程水平的50个要点
- c内核源码阅读准备知识(erlang mudos lua)
- android 4.0联系人分析—查找匹配
- 新的一年
- Android EditText 密码输入框可见性设置。
- VS2008中文版安装ASP.NET 3.5 Extensions模板遗失解决方法
- VS2008中使用JSONCPP方法小结
- 软件项目开发组学习研究课题
- Makefile 中的wildcard 函数和patsubst函数
- 别信电影! 告诉你子弹击中人体后真实的威力!
- oracle 10g 无法启动,更换IP(主机名)EM无法启动解决方法