Android官方开发文档Training系列课程中文版:通知用户之构建通知
来源:互联网 发布:蚌埠办公软件培训 编辑:程序博客网 时间:2024/05/10 07:48
原文地址:http://android.xsoftlab.net/training/notify-user/index.html
引言
通知用于在有事件发生时,将事情以更便捷的方式展示给用户。用户可以在他们方便的时候直接与通知交互。
Notifications design guide课程讲述了如何设计有效的通知以及何时去使用它们。这节课将会学习如何实现通用的通知设计。
构建通知
这节课的实现主要基于NotificationCompat.Builder类,NotificationCompat.Builder类属于支持库。开发者应该使用NotificationCompat及其子类,特别是NotificationCompat.Builder,以便支持更宽泛的平台。
创建通知构建器
当创建通知时,需要指定通知的UI内容以及它的点击行为。一个Builder对象至少要包含以下条件:
- 一个小图标,通过setSmallIcon()方法设置。
- 通知标题,通过setContentTitle()方法设置。
- 详细文本,通过setContentText()方法设置。
比如:
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.notification_icon) .setContentTitle("My notification") .setContentText("Hello World!");
定义通知的行为
创建通知时,应当至少为通知添加一个行为。这个行为会将用户带到Activity中,这个Activity中详细的展示了发生了什么事情,或者可以使用户采取进一步的行动。在通知内部,行为由PendingIntent所包含的Intent指定,它可以用来启动Activity.
如何构造PendingIntent取决于要启动的Activity的类型。当由通知启动Activity时,开发者必须考虑用户所期待的导航体验。在下面的代码中,点击通知会启动一个新的Activity,这个Activity继承了通知所产生的行为习惯。在这种情况下不需要创建人为的回退栈。
Intent resultIntent = new Intent(this, ResultActivity.class);...// Because clicking the notification opens a new ("special") activity, there's// no need to create an artificial back stack.PendingIntent resultPendingIntent = PendingIntent.getActivity( this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
设置通知的点击行为
为了使PendingIntent与手势产生关联,需要调用NotificationCompat.Builder的对应方法。比如要启动一个Activity,则调用setContentIntent()方法添加PendingIntent即可。
发布通知
发布通知需要执行以下步骤:
- 获得NotificationManager的实例。
- 使用notify()方法发布通知。在调用notify()方法时需要指定通知的ID,这个ID用于通知的稍后更新。
- 调用build()方法,它会返回一个Notification对象。
NotificationCompat.Builder mBuilder;...// Sets an ID for the notificationint mNotificationId = 001;// Gets an instance of the NotificationManager serviceNotificationManager mNotifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);// Builds the notification and issues it.mNotifyMgr.notify(mNotificationId, mBuilder.build());
- Android官方开发文档Training系列课程中文版:通知用户之构建通知
- Android官方开发文档Training系列课程中文版:通知用户之更新或移除通知
- Android官方开发文档Training系列课程中文版:通知用户之大视图通知
- Android官方开发文档Training系列课程中文版:通知用户之在通知中显示进度
- Android官方开发文档Training系列课程中文版:通知用户之创建不同导航方式的Activity
- Android官方开发文档Training系列课程中文版:使用Fragment构建动态UI之Fragment创建
- Android官方开发文档Training系列课程中文版:使用Fragment构建动态UI之构建灵活的UI
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之入门指南
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之环境配置
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之工程创建
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之程序运行
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之创建用户界面
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之启动另一个Activity
- Android官方开发文档Training系列课程中文版:使用Fragment构建动态UI之与其它Fragment通信
- Android官方开发文档Training系列课程中文版:与其它APP交互之将用户带到其它的APP
- Android官方开发文档Training系列课程中文版:目录
- Android官方开发文档Training系列课程中文版:目录
- Android官方开发文档Training系列课程中文版:目录
- location几种常用的属性和方法
- 自定义圆形圆形控件CircleImageview
- android中listview包含edittext时,获取焦点问题
- 安卓日记——玩转Material Design(NavigationView篇)
- #define的用法总结
- Android官方开发文档Training系列课程中文版:通知用户之构建通知
- mysql 查询奇偶数
- Hibernate配置详细解释
- Java编码问题汇总
- edtftp实现FTP开发
- 程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)
- 【开源项目】低门槛开发北斗通信的机会在此!
- 解决eclipse中git插件中的cannot open git-upload-pack问题
- Ubuntu下为Firefox安装Adobe Flash Player