`
zhouxiaoli521
  • 浏览: 562547 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Notification 基础

阅读更多

在Android中,基本的Notification就是有事件发生的时候在屏幕顶端的Notification bar上显示一个图标。然后拉下Notification bar,点击Notification的项目,会调用相应的程序做处理。比如有新短信,就会出现短信的图标,拉下Notification bar,点击图标会调用短信查看程序。

 

我们先看一下Notification的Sample Code,然后逐行做解说,大致能了解它的基本构成。

  

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;

...

private void showNotification(Message msg, int id) {
		NotificationManager notiManager = (NotificationManager) 
					getSystemService(NOTIFICATION_SERVICE);
		Notification notification = new Notification(R.drawable.notiicon, msg
				.getTitle(), System.currentTimeMillis());
		notification.flags = Notification.FLAG_AUTO_CANCEL;
		Intent intent = new Intent(this, MainActivity.class);
		Bundle bundle = new Bundle();
		bundle.putString("info", msg.getInfo());
		intent.putExtras(bundle);
		intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
				| Intent.FLAG_ACTIVITY_NEW_TASK);
		PendingIntent contentIntent = PendingIntent.getActivity(this, id,
				intent, PendingIntent.FLAG_UPDATE_CURRENT);

		notification.setLatestEventInfo(this, msg.getTitle(), msg.getInfo(),
				contentIntent);
		notiManager.notify(id, notification);
	}

 

首先导入三个类,Notification,NotificationManager,PendingIntent。 值得一提的是PendingIntent,它可以看做是Intent这封信的一个信封。PendingIntent基本上是Intent的包装和描述,对象收到PendingIntent后,可以得到其中的Intent再发出去。

 

NotificationManager notiManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

 

上面这一句,从系统中获得Notification服务,getSystemService()就是这么用,来获得系统服务的。

 

Notification notification = new Notification(R.drawable.notiicon, msg
				.getTitle(), System.currentTimeMillis());
		notification.flags = Notification.FLAG_AUTO_CANCEL;

 

 

然后是构造一个Notification,包括三个属性,图标,图标后面的文字,以及Notification时间部分显示出来的时间,通常使用当前时间。FLAG_AUTO_CANCEL说明Notification点击一次就消失。

 

Intent intent = new Intent(this, MainActivity.class);
		Bundle bundle = new Bundle();
		bundle.putString("info", msg.getInfo());
		intent.putExtras(bundle);
		intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
				| Intent.FLAG_ACTIVITY_NEW_TASK);

 

 

上面这部分Code,构造一个Intent,并且放进去一条信息。 FLAG_ACTIVITY_CLEAR_TOP, FLAG_ACTIVITY_NEW_TASK者两个FLAG表示优先寻找已经打开的应用,如果应用没有打开那么启动它。

 

PendingIntent contentIntent = PendingIntent.getActivity(this, id,
				intent, PendingIntent.FLAG_UPDATE_CURRENT);

 

这一句代码把Intent包装在PendingIntent里,this是Context,id是PendingIntent的标志,如果id相同会被认为是一个。FLAG_UPDATE_CURRENT是指后来的PendingIntent会更新前面的。

 

notification.setLatestEventInfo(this, msg.getTitle(), msg.getInfo(),
				contentIntent);
		notiManager.notify(id, notification);

 

最后这两行添加状态栏的详细信息,包装PendingIntent给Notification,最后发送Notification。

 

 

http://community-china.developer.motorola.com/t5/%E4%B8%BA%E6%91%A9%E6%89%98%E7%BD%97%E6%8B%89%E6%89%8B%E6%9C%BA%E5%BC%80%E5%8F%91Android%E5%BA%94%E7%94%A8/Android-Notification-%E5%9F%BA%E7%A1%80/td-p/171

分享到:
评论

相关推荐

    AndroidNotification

    "AndroidNotification"项目旨在整合Android平台上所有Notification的使用方法,这对于开发者来说是一个宝贵的资源,能够帮助他们理解和实践各种通知功能。 首先,我们来详细了解一下Android中的Notification。...

    Android Notification更新

    在Android系统中,Notification是应用与用户交互的重要方式之一,特别是在后台运行时,它能将信息传达给用户,如消息提醒、下载进度等。本文将深入探讨如何利用Android的Notification API来实现动态下载过程的可视化...

    Android Notification和WebView结合的源码

    在Android开发中,Notification是应用与用户交互的重要方式,它可以在状态栏显示消息,即使用户不在应用程序中,也能提醒用户有新的活动或信息。而WebView则是一个强大的组件,可以加载和展示网页内容。将这两者结合...

    Android 通知(notification)简单实用Demo,包含点击功能

    这个"Android 通知(notification)简单实用Demo"提供了一个基础的实现,包括点击功能,非常适合初学者理解和实践。 一、通知的基本结构 一个Android通知通常由以下几个部分组成: 1. **通知图标**:显示在状态栏...

    Android Notification.Builder通知案例分享

    2. 需要掌握 Java 语言: Android Notification.Builder 需要开发者具备一定的 Java 语言知识,如 Java 语言基础、 Java 语言高级特性等。 Android Notification.Builder 通知案例是一种非常有用的通知处理机制,...

    Android自定义Notification添加点击事件

    在自定义 Notification 中添加点击事件,并不是一个复杂的任务,但是需要我们对 Android 的基础知识有所了解,例如,BroadcastReceiver、PendingIntent 等。通过本文,我们可以了解如何添加点击事件到自定义 ...

    Android学习下 toast notification用法.rar

    在Android开发中,Toast和Notification...通过深入研究这个源码实例,你将掌握Toast和Notification的基本使用,为构建更好的Android用户体验打下基础。同时,不要忘记实践和尝试,理论结合实际是学习编程最有效的方法。

    Android-各种各样的androidNotification效果

    1. **基础Notification创建**: 使用`NotificationCompat.Builder`类可以创建一个基本的通知。首先,我们需要实例化Builder对象,设置通知的标题、内容文本、小图标以及通知的唯一ID。例如: ```java ...

    android push notification 下载即可运行

    一、Android Push Notification基础 1. GCM(Google Cloud Messaging)与FCM(Firebase Cloud Messaging):早期,Android设备使用GCM接收云端消息,但现在已经由FCM取代,FCM提供了更多功能,如自定义消息、消息...

    android Notification

    在Android系统中,Notification是应用与用户交互的重要方式,它能够在状态栏中显示信息,即使应用在后台运行也能提醒用户有新的活动或者消息。本文将深入探讨`android Notification`的相关知识点,包括其基本结构、...

    Android Notification

    1. **基础Notification**:最基本的Notification只包含标题、内容和图标。通过`NotificationCompat.Builder`类来创建,例如: ```java NotificationCompat.Builder builder = new NotificationCompat.Builder...

    Android Notification Demo

    在Android开发中,通知(Notification)是应用与用户交互的重要方式之一,特别是在后台运行时,它能向用户提供信息,而不必打开应用。本教程通过"Android Notification Demo"将深入探讨如何创建和定制各种类型的...

    Android push notification方案比较

    【Android Push Notification 方案比较】 在开发Android应用时,向用户实时推送通知是必不可少的功能,Android提供了多种推送通知方案,包括C2DM(Cloud to Device Messaging)、MQTT(Message Queuing Telemetry ...

    android用户界面之Notification教程实例汇总

    #### 一、Notification基础教程 **1. Notification实时显示系统内存信息** - **链接**: [http://www.apkbus.com/android-51690-1-1.html](http://www.apkbus.com/android-51690-1-1.html) - **内容概述**: 这篇...

    android学习之toast和notification

    `Android`的`Java`编程语言是实现这些功能的基础。开发者需要熟悉`Context`、`Intent`以及`BroadcastReceiver`等基本概念。`Intent`是Android中组件间通信的主要手段,它可以启动一个活动(Activity)或者服务...

    Android新手之简单实现Notification

    在Android开发中,Notification是一种非常重要的用户界面组件,它能够在状态栏中显示消息,即使应用在后台运行或者被关闭,用户也能接收到相关信息。对于新手来说,理解并正确使用Notification是提升用户体验的关键...

    Android Notification demo

    本教程将详细讲解如何在Android中实现一个基础的通知示例,即"Android Notification demo"。 一、通知的基本结构 Android的通知主要由以下几个部分组成: 1. **通知图标**:显示在状态栏和通知中心,通常是应用的...

    Android中使用Notification提示消息示例

    在Android应用开发中,Notification是向用户展示非交互式消息的一种关键机制,它可以在状态栏显示,即使用户不在与应用程序交互时也能提醒用户有新的事件发生。本示例将详细介绍如何在Android中使用Notification来...

    Android高手进阶教程与Android基础教程

    Android基础教程之----Android状态栏提醒(Notification,NotificationManager)的使用.doc Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!.doc Android基础教程之----动态更改屏幕方向的简单例子...

Global site tag (gtag.js) - Google Analytics