Android中全局搜索(QuickSearchBox)详解(一)

来源:互联网 发布:c语言编程病毒 编辑:程序博客网 时间:2024/05/17 01:47

1. 全局搜索(QuickSearchBox)介绍:

全局搜索(QuickSearchBox)是Android系统中原生的应用程序,它的主要职能是接收用户的搜索请求,并将搜索请求传达给支持全局搜索的应用程序,应用程序执行搜索操作,并将搜索到的結果返回给全局搜索应用程序,全局搜索应用根据搜索結果渲染UI界面,当用户单击某一个搜索出来的結果项就会打开相应的应用程序,显示搜索結果的詳細信息。

 

2. 全局搜索(QuickSearchBox)技术架构:

 

Android系统的全局搜索由搜索管理器(SearchManager),全局搜索AppWidget,全局搜索应用,支持全局搜索的应用程序(联系人,音乐,浏览器等)四大部分组成:

 

(1)framework层的搜索管理器(SearchManager):主要功能是对Android系统全局搜索提供支持,当Android系统启动完成后会发出系统启动完成(BOOT_COMPLETED)广播,SearchManager接收到此广播后会通过PackageManager搜索系统中支持全局搜索的应用程序(应用程序如何支持全局搜索以后的文章会介绍),这此支持全局搜索的应用我们称为搜索源,SearchManager解析搜索源的配置信息并将这些配置信息封装成对象保存在List列表中供全局搜索应用程序使用。

 

(2)全局搜索AppWidget:AppWidget是搜索的入口,当用户需要使用全局搜索时会单击已经添加到桌面的全局搜索AppWidget,这时会打开全局搜索应用。

 

(3)全局搜索应用程序(QuickSearchBox):它的主要职能是接受用户的输入请求,启动异步搜索,将搜索到的結果显示。

 

(4)支持全局搜索的应用程序:每一个支持全局搜索的应用程序都需要实现一个ContentProvider,通过这个ContentProvider向外提供数据,全局搜索应用(QuickSearchBox)会调用这些ContentProvider获取数据。

 

3. 搜索执行全过程:

 

Android系统启动完成,发出系统启动完成(BOOT_COMPLETED)广播,搜索管理器(SearchManager + Service)接收到此广播后会通过PackageManager搜索系统中支持全局搜索的应用程序,并解析这些应用程序的配置信息(配置信息中包括请求支持全局搜索应用的ContentProvider的authority及其它配置信息,这些配置信息由应用的开发人员配置),封装成对象保存到List中,当用户单击Launcher中的全局搜索的AppWidget组件后打开全局搜索应用(QuickSearchBox)的主界面,在界面中的搜索输入框中输入搜索内容,这时全局搜索应用(QuickSearchBox)会从搜索管理器(SearchManager + Service)中取出全部支持全局搜索的应用程序List,并解析它们的配置信息,根据配置信息(authority等)组将成URI,要据URI调用支持全局搜索应用的ContentProvider,ContentProvider的查询方法会根据URI搜索数据,并将搜索到的結果以Cursor型式返回,全局搜索应用会解决这些数据,并以List的形式显示到UI界面中。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 割完双眼皮出血怎么办 全切双眼皮出血怎么办 割双眼皮出血了怎么办 割双眼皮后出血怎么办 双眼皮手术后出血怎么办 缝双眼皮开了怎么办 朋友网没了怎么办 压疮发生后怎么办 学籍账号已登录怎么办 护士学分不达标怎么办 高中学籍错了怎么办 定时器时间太短不够用怎么办? 考试时间不够用怎么办 感觉时间不够用怎么办 学习时间不够用怎么办 天天时间不够用怎么办 网贷骚扰通讯录怎么办 老被电话骚扰怎么办 对付广场舞噪音怎么办 普法平台考试不及格怎么办 假疫苗事件孩子怎么办 网上办生育证怎么办? 新生儿足跟血筛查没通过怎么办 新生儿听力筛查未通过怎么办 医药代表业绩差怎么办 网站诈骗被骗了怎么办 网贷利息过高怎么办 麦粒肿脓包不破怎么办 处方单丢了怎么办 深圳社保转外省怎么办 单位退休后医保怎么办 鼓楼医院就诊卡怎么办 2017个体户怎么办环评 查环保停工工人怎么办 林地己建房了怎么办 交不起环保罚款怎么办 单位没钱交社保怎么办 单位不缴医保怎么办 公司拖欠工资后注销怎么办 吸入纳米光触媒怎么办 溶解氧过低该怎么办