博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发指南(36) —— Search
阅读量:5745 次
发布时间:2019-06-18

本文共 1516 字,大约阅读时间需要 5 分钟。

 

前言

  本章内容为Android开发者指南的 Framework Topics/Search章节,译为"搜索",版本为Android 4.0 r1,翻译来自:"呆呆大虾",欢迎访问他的微博:"",再次感谢"呆呆大虾" !期待你一起参与翻译Android的相关资料,联系我over140@gmail.com。

 

声明

  欢迎转载,但请保留文章原始出处:) 

    博客园:

    Android中文翻译组:

 

 

搜索

译者署名: 呆呆大虾

译者微博:

版本:Android 4.0 r1

原文

        

 

主题

参考

相关示例

功能的字典

 

  搜索是Android的核心功能。用户应该能够搜索任何数据,包括设备上和互联网上的内容。为了建立统一的用户体验,Android为应用程序提供了搜索框架以实现搜索功能。

 

1. 搜索对话框的屏幕截图,带有自定义的搜索建议项。

 

搜索框架提供了两种搜索内容录入模式:位于屏幕顶部的搜索对话框、可嵌入activity layout的搜索小部件widget)。无论采用哪种模式,Android系统都会把搜索请求发送到执行搜索的指定activity。还可以让搜索框或widget使用用户定义的搜索建议项。图1展示了带有可选搜索建议项的搜索框范例。

一旦创建了搜索对话框或搜索widget,就可以:

·       启用语音搜索

·       根据用户最近的请求提供搜索建议项

·       提供符合应用程序实际数据的自定义搜索建议项

·       将应用程序的搜索建议项提交给系统级快速搜索框

注意: 搜索框架并不提供搜索数据的API。为了实际执行搜索,还需要根据数据选用相应的API。比如,假设数据存储在SQLite数据库中,就应该使用 API来完成搜索。

此外,不是所有设备都保证提供一个专用的搜索按钮来触发搜索界面。如果使用了搜索对话框或者自定义界面,必须自行在用户界面上提供一个搜索按钮,用于激活搜索界面。详情请参阅

 

以下文档展示了如何用Android搜索框架来实现搜索:

如何在应用程序中使用搜索对话框及搜索widget

如何根据之前提交过的查询给出搜索建议。

如何根据程序自定义数据给出搜索建议,并把建议项提交给系统级快速搜索框

搜索配置文件的参考文档(其它文档可能也已从其它角度对配置文件进行过论述了)。

 

 

保护用户隐私

在程序中实现搜索功能时,应该采取一些措施保护用户的隐私。很多用户把手机上的activity——包括搜索——视为私人信息。为了保护所有用户的隐私,应该遵守以下原则:

· 不要把个人信息发送到服务器上去,必须要传送的话也不要把信息记录下来。

个人信息是指能够单独标识用户的任何信息,如姓名、email地址、账单信息或其它与这些信息关联的数据。如果应用程序需要服务器支持才能完成搜索,请避免在搜索请求中发送个人信息。例如,假设要搜索某个邮政编码附近的商店,就没必要同时发送用户ID,仅把邮政编码发到服务器即可。如果必须发送个人信息,那就不要记录这些信息。如果必须记录下来,请非常仔细的保护这些数据并要尽快删除。

· 清空搜索历史数据以保护用户隐私。

搜索框架会帮助程序给出与用户键入内容相关的搜索建议,有时这些建议是根据之前的搜索内容或者用户以前的其它操作而作出的。用户可能并不期望他以前的搜索内容泄露给其他使用这个设备的用户,比如用户是与朋友合用一个设备的。如果应用程序给出的搜索建议可能会暴露以前的搜索activity,就应该向用户提供清除搜索历史的功能。如果用到了则简单地调用方法即可。如果是要实现自定义建议功能,那就不必在用户运行的content provider中提供类似清除历史的方法了。

你可能感兴趣的文章
【SDN】Openflow协议中对LLDP算法的理解--如何判断非OF区域的存在
查看>>
纯DIV+CSS简单实现Tab选项卡左右切换效果
查看>>
栈(一)
查看>>
ios 自定义delegate(一)
查看>>
创建美国地区的appleId
查看>>
例题10-2 UVa12169 Disgruntled Judge(拓展欧几里德)
查看>>
[c语言]c语言中的内存分配[转]
查看>>
JS 原生ajax写法
查看>>
day 10 字符编码和文件处理 细节整理
查看>>
如何打造亚秒级加载的网页1——前端性能
查看>>
聊天宝彻底凉了,遭罗永浩抛弃,团队就地解散
查看>>
Composer管理PHP依赖关系
查看>>
React.js学习笔记之JSX解读
查看>>
我所了解的Libevent和SEDA架构
查看>>
Socket编程问题小记
查看>>
基于Flask-Angular的项目组网架构与部署
查看>>
Rust 2018 即将到来:设法从 Rust 2015 过渡
查看>>
一张图道尽程序员的出路
查看>>
Android 开发应该掌握的 Proguard 技巧
查看>>
是时候放弃 Spark Streaming, 转向 Structured Streaming 了 ...
查看>>