阅读更多

13顶
1踩

移动开发

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

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

对《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协议的请求头...

  • java计算器源码.zip

    java毕业设计源码,可供参考

  • FRP Manager-V1.19.2

    Windows下的FRP图形化客户端,对应FRP版本0.61.1,需要64位操作系统

  • 基于优化EKF的PMSM无位置传感器矢量控制研究_崔鹏龙.pdf

    基于优化EKF的PMSM无位置传感器矢量控制研究_崔鹏龙.pdf

  • 旧物置换网站(基于springboot,mysql,java).zip

    旧物置换网站的开发过程中,采用B / S架构,主要使用Java技术进行开发,结合最新流行的springboot框架。中间件服务器是Tomcat服务器,使用Mysql数据库和Eclipse开发 环境。该旧物置换网站包括管理员、用户、卖家。其主要功能包括管理员:首页、个人中心、用户管理、卖家管理、旧物类型管理、旧物信息管理、置换交易管理、系统管理等,卖家后台:首页、个人中心、旧物类型管理、旧物信息管理、置换交易管理。前台首页;首页、旧物信息、网站公告、个人中心、后台管理等,用户后台:首页、个人中心、旧物信息管理、置换交易管理、用户可根据关键字进行信息的查找自己心仪的信息等。 (1)用户功能需求 用户进入前台系统可以查看首页、旧物信息、网站公告、个人中心、后台管理等操作。前台首页用例如图3-1所示。 (2)管理员功能需求 管理员登陆后,主要功能模块包括首页、个人中心、用户管理、卖家管理、旧物类型管理、旧物信息管理、置换交易管理、系统管理等功能。 关键词:旧物置换网站,Mysql数据库,Java技术 springboot框架

  • 上位机开发,对桥梁、环境等传感器传输的数据进行采集并入库,以便用于系统平台对数据进行处理分析(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

  • 质子号.zip

    航天模拟器文件、蓝图、代码

  • 两级式单相光伏并网仿真研究:MATLAB 2021a版本下的DC-DC变换与桥式逆变技术实现功率跟踪与并网效果优化,基于Matlab 2021a的两级式单相光伏并网仿真研究:实现最大功率跟踪与稳定的直

    两级式单相光伏并网仿真研究:MATLAB 2021a版本下的DC-DC变换与桥式逆变技术实现功率跟踪与并网效果优化,基于Matlab 2021a的两级式单相光伏并网仿真研究:实现最大功率跟踪与稳定的直流母线电压,两级式单相光伏并网仿真(注意版本matlab 2021a) 前级采用DC-DC变电路,通过MPPT控制DC-DC电路的pwm波来实现最大功率跟踪,mppt采用扰动观察法,后级采用桥式逆变,用spwm波调制。 采用双闭环控制,实现直流母线电压的稳定和单位功率因数。 并网效果良好,thd满足并网要求,附带仿真说明文件 ,两级式单相光伏并网仿真; MATLAB 2021a; DC-DC变换电路; MPPT控制; 扰动观察法; 桥式逆变; SPWM波调制; 双闭环控制; 直流母线电压稳定; 单位功率因数; 并网效果; THD。,MATLAB 2021a双闭环控制两级式单相光伏并网仿真研究

Global site tag (gtag.js) - Google Analytics