阅读更多

13顶
1踩

移动开发

转载新闻 浅析 Android 4.0 的通知系统

2012-06-18 11:48 by 副主编 MnouW 评论(2) 有5872人浏览
通过手机的通知系统,可以将应用程序的一些重要消息告知给用户。流畅、舒适、友好的应用程序离不开精心设计的消息提醒机制。但是并不是所有的通知都是用户想看的,否则只会给用户造成骚扰,所以要谨慎使用通知。

对《Android Design》进行翻译时发现:Android系统已经提出了一些关于通知消息的设计建议,故在此分享给大家。

一、何时使用通知?

通知主要用于对时间敏感(Time Sensitive)的事件,尤其是涉及他人(Involve another person)的同步事件。例如下面的Gtalk和日历发出的通知就是时间敏感,且与人相关的事件。



那么什么时候又不应该使用通知呢?官方的建议是:

  • 不直接针对用户的,或不紧急的信息。例如SNS中与用户没有直接关系的新鲜事。Path可能就犯了这个错误。
  • 正显示在当前屏幕的信息也不必创建一个通知。即正在聊天的时候,就不必再创建关于聊天消息的通知了。
  • 系统可以自己完成而无需用户操作的简单动作,例如保存、同步或者是更新应用程序等。
  • 如果发生错误了,但是应用程序可以快速自我恢复,此时也不必用通知去打断用户,甚至都可以不用让用户知道这个错误。
  • 对于用户不能手动启动或停止的服务,也不必使用通知。
  • 不要为了让用户对你的品牌记忆深刻而创建多余的通知,否则只会让用户反感。
想让用户对你的应用程序保持注意力并且提供少量内容的最好方式是提供小部件(widget)给用户,让用户可以将它放到首页。

二、通知的设计指南

1. 使其私有化

其他用户发过来的通知应该在通知里包含用户的头像(Icon/Photo),还要显示通知的标题(Title)、消息内容(Message)、时间戳(Timestamp),以及应用程序的图标(Secondary Icon)。



2. 合并同类通知

如果一个应用程序发出了多个相同类型的通知,而且这些通知都还没被处理的话(被处理的通知会被移出通知抽屉),那么请将相同类型的通知合并为一个。

合并后的通知会有一个总结性的描述,并且能让用户知道一共合并了多少条通知(Number Pending)。



3. 对时间敏感事件的时间戳

默认的系统通知会在通知右上角打上时间戳,如果你认为显示时间戳对你的通知是没有意义的,那你可能就要重新考虑是否值得为这条消息创建一条通知了。如果这条通知确实足够重要,再决定是否不显示时间戳。

常见的需要显示时间戳的通知是通讯通知,如Email、短信、聊天消息这种,用户需要通过时间戳来理解消息的上下文。

4. 通知相关的导航机制

如果用户点击了一条通知,此时应该将相关的应用程序打开到可以对通知中提到的内容进行操作的状态。但如果用户点击了一个合并的通知,应该去到列表页面(内容页的上一层级),后面第三部分会详细阐述。

5. 自我清理

有些通知会在某个时间点出现告知用户一些相关的信息和提示,但是如果过了那个时间点,这个通知可能对用户来说就不重要了,此时就应该考虑自动删除这条通知。

同样的,用户查看过的聊天消息或邮件,也应该让用户不必手动操作就移除这些通知。

6. 为通知提供预览

提供一段简短的文本作为通知的预览可以让用户大致了解通知的内容,从而帮助用户决定是否立刻查看该通知。



7. 让用户决定是否显示通知

用户可能对频繁出现的通知感到厌烦,所以应该让用户决定是否显示通知。因此,在应用程序的设置中应该让用户可以取消通知。

8. 使用不同的图标

为了让用户在通知栏看一眼就能知道是哪个应用程序发出的通知,应该采用有自己特色的图标。所以在设计应用程序的图标的时候,应该注意与其他Android应用的通知图标有比较明显的区别。

但需要注意的是不要用颜色来区分,因为通知图标通常都是黑白的。

三、通知的导航机制

1. 单条通知与合并通知

如果用户点击了一条通知,此时应该将相关的应用程序打开到可以对通知中提到的内容进行操作的状态。例如用户收到一封新邮件的通知,用户点开该通知后应该去到这封邮件的内容页。



因为同类通知会被合并,如果用户点击了一个合并的通知,应该去到列表页面(内容页的上一层级)。在下面的例子中,用户点开一条合并的新邮件通知后,进入了收件箱界面。



2. 间接通知

如果应用程序需要同时展示多个事件的信息,可以使用一条通知将用户指引到一个中间界面。这个界面会展示这些事件,并为用户提供进入应用程序的入口。这种类型的通知被称为间接通知。

例如一个用户在Gmail中收到了Calendar发出的一条间接通知。点击这条通知后打开一个中间界面(calendar interstitial),这个界面下显示了几个事件的提醒,在这个界面点“返回”键会回到Gmail,但是如果用户点击了某个事件提醒,就会离开这个中间界面并打开Calendar应用程序以显示这个事件的详细内容。在这个事件的详细内容的界面下,点“向上”和“返回”都会去到Calendar应用的首页。



在间接通知的中间界面点“返回”会回到触发该通知的界面,返回路径中不会被插入其他界面。一旦用户通过中间界面进入了应用程序,“向上”和“返回”的逻辑就与标准通知一样了:在应用程序之间进行导航,而不会返回到中间界面。

关于间接通知的详细内容请查看百度MUX翻译的《Android Design》的模式Patterns—-导航Navigation章节。

3. 弹出通知

弹出通知会绕过抽屉通知直接出现在用户面前。一般情况下很少使用,只在需要及时地反馈并且必须打断用户的场合下才会使用。例如Talk应用使用这种形式的通知来提醒用户有好友邀请他加入视频聊天,因为这个邀请会在几秒后自动失效。

对于导航行为,弹出通知严格遵循间接通知的中间界面的导航逻辑。点“返回”会关闭弹出通知。如果用户从这条弹出通知进入了发出通知的应用程序,“向上”和“返回”的逻辑会与标准通知的逻辑保持一致,在应用程序内进行导航。



关于间接通知的详细内容请查看百度MUX翻译的《Android Design》的模式Patterns—-导航Navigation章节。

四、通知的相关交互

1. 通知抽屉

默认情况下,待处理的通知是以图标形式显示在状态栏中,从屏幕上方向下滑即可打开通知抽屉。



最近的通知排在最前面,点击一条通知会将其应用程序打开到与这条通知相关的界面。



在一条通知上向左或向右横划即可移除该通知。



在Android 4.0的平板电脑中,通知栏则被集成到底部的系统栏里,在通知区域的任意位置点击即可打开通知抽屉。



2. 进行中的通知

有一些通知是让用户了解后台正在运行的进程。例如正在播放的音乐播放器、正在后台运行的省电程序、正在保护系统的安全软件等。另外也可以对下载上传、视频编码这种持续时间较长的任务提供反馈。这种进行中的通知是不可以被移除的。



3. Dialog和Toast用作反馈

如果某个应用程序没有在当前屏幕运行,它就不应该弹出对话框(Dialog)和提示条(Toast)。对话框和提示条应该是用户在当前应用程序下执行操作时,用来提供即时的操作反馈的。比如对话框可以让用户知道某个操作的危险后果,而提示条可以让用户知道某个操作已成功执行。



五、总结

在Android平台设计应用程序的通知消息时应该明确在哪些场景下使用通知;不同的场景显示什么类型的通知。在设计的时候还要注意通知的私有化、导航逻辑、清理机制、同类通知的合并、图标的设计等。为避免对用户造成骚扰,还应该在应用程序的设置中增加对是否显示通知消息的设置。

从较早版本的Android系统开始,就具备了比较成熟的通知系统,新版iOS系统也参考了类似的设计。所以充分利用Android的通知系统,一定可以让用户对你的应用程序了如指掌。

另附上MUX翻译的最新版《Android Design》,欢迎大家下载阅读。

译文:http://mux.baidu.com/img/97/AndroidDesign-BaiduMUX.pdf

英文原文:http://developer.android.com/design/
  • 大小: 45.4 KB
  • 大小: 55.5 KB
  • 大小: 46.6 KB
  • 大小: 39.3 KB
  • 大小: 67.9 KB
  • 大小: 97.9 KB
  • 大小: 92 KB
  • 大小: 74.1 KB
  • 大小: 39.9 KB
  • 大小: 110 KB
  • 大小: 56.1 KB
  • 大小: 17.5 KB
  • 大小: 22.3 KB
  • 大小: 27.8 KB
来自: 百度MUX
13
1
评论 共 2 条 请登录后发表评论
2 楼 bluky999 2012-06-20 11:02
  有个指导还是好的,避免一个劲地狂推送
1 楼 332575101 2012-06-18 19:54
    这么复杂!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 深入浅出java高级编程【2011-11-21】

    请问:怎么用j2ee在web上...求助:关于Hibernate调用存储过程的问题. 求助:国际化问题中的日文问题 Savvion BusinessManager 6.5 hibernate问题请教 struts2学习中启动tomcat碰到的error filterstart问题 请教AGLET

  • 编程王 kingofcoders.com

    Java和.Net的socket机制的比较       一个程序员的C#命名规则(挺不错的)       PDC:Anders谈C# 4.0:新功能和展望       详解Silverlight 2中的独立存储       ...

  • Java面试题全集(中)

    以前CGI经常因为性能开销上的问题被诟病,然而Fast CGI早就已经解决了CGI效率上的问题,所以面试的时候大可不必信口开河的诟病CGI,事实上有很多你熟悉的网站都使用了CGI技术。 97、Servlet接口中有哪些方法? ...

  • 【转载】JAVA知识点集锦(中)

    JSP解决了Servlet的这些问题,它是Servlet很好的补充,可以专门用作为用户呈现视图(View),而Servlet作为控制器(Controller)专门负责处理用户请求并转发或重定向到某个页面。基于Java的Web开发很多都同时使用了...

  • webmagic采集CSDN的Java_WebDevelop页面

    关于表单提交后跟ajax请求, java web上传文件功能的问题, solr高亮问题, java web上传文件到项目里自动刷新项目后才能读取到, 求教一个手机网站开发问题, 用MyEclipse做图书管理系统出现HTTP Status 500 - , 新人...

  • 深入浅出java高级编程【2011-11-25】

    谁能全面的说说struts的中文资源问题 JavaMail 1.3.2 Release!!! POI打开Excel时如何计算公式 如何制作tomcat安装盘 Eclipse+Jboss开发stateless session bean出现的问题,急!!! hibernate能实现batch的...

  • java开发速成班培训课程(19)

    [url=http://www.buildapp.net/java/show.asp?id=29400]关于JMS Transaction[/url] [url=http://www.buildapp.net/java/show.asp?id=29399]hibernate 的 Extension 的问题[/url] [url=...

  • Java面试复习大纲2.0(持续更新)

    Java面试复习大纲2.0(持续更新)2018-02-26 奋斗蒙 Java帮帮面试复习大纲(Java帮帮总结)【人事】31道,不准备就掉坑的问题【简历】1年简历模板一【简历】2年简历模板一【简历】3年简历模板一【面试】面试练习题...

  • 1269道Java技术答疑,阿里技术专家帮你Java技术进阶

    云栖社区邀请到6位Java技术专家帮开发者答疑...如有Java相关问题,请向专家提问https://yq.aliyun.com/promotion/755 ,或者在云栖社区Java问答界面提问https://yq.aliyun.com/tags/type_ask-tagid_41 spring相关问...

  • java面试题集汇总

    继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与模式》或《设计模式精解》中关于桥梁模式的部分)。 - 封装:通常认为封装是把数据和...

  • java面试题系列(二)

    以前CGI经常因为性能开销上的问题被诟病,然而Fast CGI早就已经解决了CGI效率上的问题,所以面试的时候大可不必信口开河的诟病CGI,事实上有很多你熟悉的网站都使用了CGI技术。 97、Servlet接口中有哪些方法? ...

  • java 知识点集锦中 面试必备

    以前CGI经常因为性能开销上的问题被诟病,然而Fast CGI早就已经解决了CGI效率上的问题,所以面试的时候大可不必信口开河的诟病CGI,事实上有很多你熟悉的网站都使用了CGI技术。 97、Servlet接口中有哪些方法?...

  • java面试题(中)

    这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别?   答:Servlet与CGI的区别在于Servlet处于..."连接,而各个变量之间使用"&"连接;post是将表单中的数据放在HTTP协议的请求头...

  • 基于Qt开发的截图工具- 支持全屏截图, 支持自定义截图,支持捕获窗口截图,支持固定大小窗口截图,颜色拾取,图片编辑

    基于Qt开发的截图工具.zip 截图工具(QScreenShot) Qt编写的一款截图工具。 特点 - 支持全屏截图 - 支持自定义截图 - 支持捕获窗口截图 - 支持固定大小窗口截图 - 颜色拾取 - 图片编辑 - 图片上传到wordpress 环境 Qt6.2 QtCreate 8

  • 毕业设计&课设_ 校园活动管理系统,优化校园活动组织流程,涵盖多方面功能模块的便捷平台.zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

  • 毕业设计基于ASP.NET技术的班级展示网站构建(源代码+论文).zip

    基于ASP.NET技术的班级展示网站构建资源,是一套针对教育机构或学生团体,旨在通过ASP.NET框架开发班级风采展示平台的指导资料或教程。此资源详细介绍了如何利用ASP.NET的强大功能,快速搭建一个功能完善、界面友好的在线班级展示平台。 该资源涵盖了从需求分析、数据库设计、前端页面制作到后端逻辑实现的全过程。通过实例演示,指导用户如何设置班级信息、学生风采展示、活动公告、图片上传与浏览等核心功能模块。同时,结合ASP.NET的MVC架构,实现了前后端分离,提高了代码的可维护性和可扩展性。 此外,该资源还提供了丰富的代码示例和注释,帮助开发者深入理解ASP.NET框架的工作原理,掌握如何运用其强大的数据库操作、用户认证与授权等特性。对于初学者来说,这是一份难得的入门教程;而对于有一定经验的开发者,则是一份提升技能的参考资料。 总之,基于ASP.NET技术的班级展示网站构建资源,是教育机构和学生团体实现班级风采在线展示的理想选择,也是开发者学习ASP.NET框架应用的宝贵资源。

  • 基于springboot的流浪动物管理系统源码数据库文档.zip

    基于springboot的流浪动物管理系统源码数据库文档.zip

  • 基于springboot+vue的实践性教学系统源码数据库文档.zip

    基于springboot+vue的实践性教学系统源码数据库文档.zip

  • 基于Python+Django家居全屋定制系统源码数据库文档.zip

    基于Python+Django家居全屋定制系统源码数据库文档.zip

  • Umi-OCR-main.zip

    Umi-OCR-main.zip

Global site tag (gtag.js) - Google Analytics