Android文档笔记:通知(一)
来源:互联网 发布:服务器端口开启 编辑:程序博客网 时间:2024/06/09 14:58
通知的显示元素
普通视图
- 高度64dp
- 大试图的通知在展开前也显示为普通视图
1. 标题
2. 大图标
3. 内容文字
4. 内容信息
5. 小图标
6.通知的时间。默认为系统发出通知的时间,也可通过setWhen()来设置
大视图
- 只在通知被展开时显示
- 何时展开:通知处在顶端,或者用户通过收拾展开
- 收件箱风格的通知:
相比普通视图,仅多出:
7. 详情区域
- 详情区域根据用途可有多种风格:
>大图片风格:详情区域包含一个256dp高度的位图
>大文字风格:显示一个大的文字块
>收件箱风格:显示多行文字
- 各种风格都具有以下常规视图不具有的内容选项:
>大标题:在展开视图时替代普通视图的骠骑
>总结文字:允许你在详情区域之下增加一行内容
- 关于大视图,具体看本文章节:《对通知使用大视图风格》
创建一个通知
- 用NotificationCompat.Builder对象来设定通知的UI信息和行为
- 调用NotificationCompat.Builder.build()来创建通知
- 调用NotificationManager.notify()来发送通知
必要的通知内容
一条通知必须包含:
-一个小图标,用setSmallIcon()来设置
-一条标题,用setContentTitle()来设置
-详情文字,用setContentText()来设置
可选的通知内容与设置
-其余所有项目都是可选的,具体参阅NotificationCompat.Builder参考文档
通知的行为
-虽然是可选项,但是你应当为你的通知添加至少一个行为。
- 行为允许用户直接转向应用中的一个活动。
- 通知可以提供多个行为:
>你应当总是定义用户点击所触发的行为。这个行为通常是用来打开一个活动。
>你还可以在通知中添加按钮以执行附加的动作,如延迟一个闹钟或者快速回复一条短信。这个特性从Android4.1开始可用。
>如果使用附加行为按钮,那么在你的活动中也必须使这些功能可用。
- 如何定义行为?
>行为由一个PendingIntent来定义。PendingIntent包含一个用来启动活动的intent
>为了将PendingIntent与手势相关联,应当调用NotificationCompat.Builder的对应方法。如,如果你想要在点击通知的内容时启动一个活动,则要调用setContentIntent()方法来添加PendingIntent。
创建简单通知
-以下代码片段掩饰如何创建一个简单通知。为此通知指定了一个活动。当用户惦记通知时打开该活动。
-代码中创建了一个TaskStackBuilder对象,以之来创建PendingIntent。具体在《在启动活动时保存导航》一节讲解
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("My notification")
.setContentText("Hello World!");
// Creates an explicit intent for an Activity in your app
Intent resultIntent = new Intent(this, ResultActivity.class);
// The stack builder object will contain an artificial back stack for the
// started Activity.
// This ensures that navigating backward from the Activity leads out of
// your application to the Home screen.
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(ResultActivity.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
stackBuilder .getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// mId allows you to update the notification later on.
mNotificationManager.notify(mId, mBuilder.build());
对通知使用大视图风格
- 首先创建NotificationCompat.Builder对象来做普通的设置
- 然后调用Builder.setStyle()
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("Event tracker")
.setContentText("Events received")
NotificationCompat.InboxStyle inboxStyle =
new NotificationCompat.InboxStyle();
String[] events = new String[6];
// Sets a title for the Inbox style big view
inboxStyle.setBigContentTitle("Event tracker details:");
...
// Moves events into the big view
for (int i=0; i < events.length; i++) {
inboxStyle .addLine(events[i]);
}
// Moves the big view style object into the notification object.
mBuilder.setStyle(inBoxStyle);
...
// Issue the notification here.
- Android文档笔记:通知(一)
- Android文档笔记:通知(一)
- Android文档笔记:通知(二)
- Android文档笔记:通知(二)
- Android文档笔记:通知(三) - 启…
- Android文档笔记:通知(四)&nbsp…
- Android文档笔记:通知(四) - 在通知中显示进度
- Android文档笔记:服务(一)
- Android开发者文档笔记(一)
- android Api文档笔记(一)进程
- android之通知(一)
- [翻译]Android官方文档 - 通知(Notifications)
- Android文档笔记:通知(三) - 启动活动时保存导航
- Android文档笔记:动画与图形(一)
- Android 用户界面---状态栏通知(一)
- Android 用户界面---状态栏通知(一)
- Android 通知栏使用介绍(一)
- Android通知Notification的使用(一)
- Android文档笔记:服务(二)-创建…
- Java多线程编程,模拟售票
- Android文档笔记:服务(三)-创建…
- 1.5 类的简介
- Android文档笔记:服务(四)- 通…
- Android文档笔记:通知(一)
- Android文档笔记:通知(二)
- Android进程与线程(二):线程
- Android进程与线程(三):跨进程…
- Android文档笔记:通知(三) - 启…
- Android文档笔记:通知(四)&nbsp…
- Android绑定服务(一):基础知识
- POJ 2411 记录状态的dp
- Android绑定服务(二):创建绑定…