解读Notification

  次阅读 作者:智能小宝 来源:互联网 2015-10-02 21:51 我要评论(0)

综述

status bar notification添加一个图标(和一条可选的ticker-text消息)到系统的status bar(状态条),并且显示一个notification message(通知消息)在系统的notifications window(消息窗口)中。当用户选择了消息窗口中的一条消息,Android系统就发出一个通过Notification定义的Intent(通常是用于启动一个activity)。你也可以通过配置notification以通过声音、震动或者是设备上的flashing lights(闪光灯)来告知用户。

status bar notification用于后台运行的服务需要告知用于一些事件并且得到用户的响应的情况下。后台运行的服务为了及时得到用户的相应不应该自己启动一个activity。而应该创建一个用户选择后可以启动activity的status bar notification。

图一显示了一个左边包含一个nitification的图片。

图二显示了在notifications window中有的notifications。

基本

一个Activity 或者是Service可以初始化一个status bar notification。由于一个通常只有在处于前台运行并且和用户交互的时候才能执行操作,因此,我们通常是通过一个service来创建notifications。这时,即使用户在运行其他的程序或者是设备进入休眠状态的时候,我们依然可以在后台创建notifications。要创建一个notification,我们必须要用到两个类:Notification和NotificationManage。

用Notification类的实例来定义status bar notification的属性,例如:status bar notification的图标、显示的message(信息)以及额外的设置,例如播放的声音。NotificationManager是Android的一项系统服务,通过它可以执行和管理所有的status bar notifications。你不能直接实例化NotificationManager这个类。为了实现自己的Notification,你必须通过getSystemService()方法获得NotificationManager,然后,当你想通知用户的时候,将Notification传递给notify()这个方法,这样就实现了自己的status bar notification。

通过如下步骤来创建一个status bar notification:

1.获得NotificationManager:

String ns = Context.NOTIFICATION_SERVICE;

NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);

2.实例化Notification:

int icon = R.drawable.notification_icon;

CharSequence tickerText = "Hello";

long when = System.currentTimeMillis();

Notification notification = new Notification(icon, tickerText, when);

3.定义notification要显示的message和PendingIntent:

Context context = getApplicationContext();

CharSequence contentTitle = "My notification";

CharSequence contentText = "Hello World!";

Intent notificationIntent = new Intent(this, MyClass.class);

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

到这里,我们就实现了一个notification,用户应该可以收到这个notification了。

这里我们举一个实例,方便大家清楚的了解,要实现的效果就是在主Mactivity上显示一个Button,当按下这个Button时,就发出我们自定义的一个notification,具体步骤如下:

第一步:新建一个工程,命名为:Notification01;

第二步:修改布局文件main.xml,添加一个Button;

第三步:修改java源文件,代码如下:

public class Notification01Activity extends Activity {

private Button sendBtn;

private static final int HELLO_ID = 1;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...