Notification完整使用实例

MainActivity如下:

package cc.cv;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
import android.app.Notification;
import android.app.Notification.Builder;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
/**
 * Demo描述:
 * Notification完整使用实例
 *
 * 注意权限:
 * <uses-permission android:name="android.permission.VIBRATE"/>"
 *
 *
 * 参考资料:
 * 1 http://blog.csdn.net/vipzjyno1/article/details/25248021
 * 2 http://adchs.github.io
 *   Thank you very much
 */
public class MainActivity extends Activity {
	private Button mSendButton;
	private Button mUpdateButton;
	private Context mContext;
	private Builder mBuilder;
	private PendingIntent mPendingIntent;
    private Notification mNotification;
    private NotificationManager mNotificationManager;
    private final int NOTIFICATION_ID=9527;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}

	private void init(){
		mContext=this;
		mSendButton=(Button) findViewById(R.id.sendButton);
		mSendButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				sendNotification(mContext);
			}
		});
		mUpdateButton=(Button) findViewById(R.id.updateButton);
		mUpdateButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				updateNotification();
			}
		});
	}

	/**
	 * 发送通知
	 */
	private void sendNotification(Context context){
		Intent intent=new Intent(mContext, MainActivity.class);
		mPendingIntent=PendingIntent.getActivity(mContext, 0,intent, PendingIntent.FLAG_UPDATE_CURRENT);
		mNotificationManager=(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
		mBuilder=new Builder(mContext);
		//通知产生的时间
		mBuilder.setWhen(System.currentTimeMillis());
		//通知首次出现在通知栏时的提示文字
		mBuilder.setTicker("Ticker");
		mBuilder.setContentTitle("ContentTitle");
		mBuilder.setContentInfo("ContentInfo");
		mBuilder.setContentText("ContentText");
		mBuilder.setContentIntent(mPendingIntent);
		//通知的优先级
		mBuilder.setPriority(Notification.PRIORITY_DEFAULT);
		//设置通知的图标.必须要有这句否则通知不显示!!!
		mBuilder.setSmallIcon(R.drawable.ic_launcher);
		//为通知添加声音,闪灯和振动效果等效果
		mBuilder.setDefaults(Notification.DEFAULT_VIBRATE);
		//设置通知是否为一个正在进行的通知.后台任务时常使用true
		mBuilder.setOngoing(false);

		mNotification=mBuilder.build();
		//通知被点击后自动消失
		mNotification.flags = Notification.FLAG_AUTO_CANCEL;
		mNotificationManager.notify(NOTIFICATION_ID, mNotification);
	}

	/**
	 * 发送通知
	 */
	private void updateNotification(){
		mBuilder.setContentTitle("Title");
		mBuilder.setContentInfo("Info");
		mBuilder.setContentText("Text");
		mNotification=mBuilder.build();
		mNotification.flags = Notification.FLAG_AUTO_CANCEL;
		mNotificationManager.notify(NOTIFICATION_ID, mNotification);
	}

}

main.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <Button
        android:id="@+id/sendButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="发送通知"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dip" />

    <Button
        android:id="@+id/updateButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="更新通知"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="250dip" />

</RelativeLayout>

时间: 2024-10-28 13:56:05

Notification完整使用实例的相关文章

文件上传插件Uploadify在Struts2中的应用,完整详细实例

->最近由于项目需要使用到一个上传插件,在网上发现uploadify挺不错,所以决定使用它,但是官网文档和例子是php的,而项目是SSI框架的,所以自己对uploadify在struts2中的使用进行了一番研究,最终实现了.发现网上关于这方面的资料很少,而且有的一两篇例子还不大全,网友提问质疑很多,所以,下面我特将我的代码公布: --------------------------------------------------------------------- 步骤一: 到官网上下载upl

完整软件实例中文编程解析,软件试用版注册版编程思路视频教程

通过对完整软件实例(工程设计流水管理系统)编程讲解,让学员熟悉完整软件布局架构及开发思路.比如从界面布局.登录验证.软件注册程序.到软件发布等知识点,贯穿知识点间联系,提升编程整合能力. 中文编程完整软件实例编程解析之工程设计流水管理系统(8课时) 第1课:整体布局.EXCEL表数据导入到软件数据库编程a.整体布局b.EXCEL表数据导入到软件数据库编程第2课:基本信息预先设置编程a.项目名称预设置 第3课:子项目工程日志流水编程解析a.工程日志流水编程 第4课:子项目设计费发放流水编程解析a.

Spring mvc整合mybatis基于mysql数据库实现用户增删改查及其分页显示的完整入门实例【转】

Spring mvc整合mybatis例子, 基于mysql数据库实现对用户的增.删.改.查,及分页显示的完整例子. 查询显示用户 添加用户 更新用户 官方验证: 项目截图 必须修改applicationContext.xml中mysql的配置为本地的,否则启动失败. 另外jar包多一个ehcache.jar无关紧要,删除即可. 1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库

puppet一个完整的实例

一个具体实例来简单说明puppet的具体结构 创建第一个配置 puppet的组成清单这主要包含这几个部分 资源,文件,模板,节点,类,定义 puppet中有个模块的定义,这个比较重要,基本是puppet的核心,这个模块主要是由资源,文件,模板,类,定义来组成的. puppet的清单文件是以.pp来结尾的,在载入文件的时候就不需要写.pp的扩展名了. 现在我们来创建第一个模块: 第一创建模块 1 进入到这个目录下 2 cd /etc/puppet/modules/ 3 mkdir motd #创建

puppet完整模块实例分步解读

本文示例针对puppet自身模块,详细解读模块的结构及语法应用,通过本例的学习,可以掌握puppet模块应用的技能,为自动化应用打下坚实基础. 下面就以agent为例分步测试 1  创建puppet模块目录结构 [[email protected] ~]# cd /etc/puppet/modules/                        #进入模块主目录 [[email protected] modules]#  mkdir puppet                       

spring完整demo实例

我前几篇分散的说了spring mvc,这一篇我完整的说一下,仅供参考,如果大家要用, 只需要改下路径就行,可能比较长,大家耐心看哦.我会在最后把工程连接贴上. 先贴hibernate的连接配置:hibernate.properties dataSource.url=jdbc\:mysql\://127.0.0.1\:3306/dorm dataSource.password=123456 dataSource.username=root dataSource.driverClassName=c

RC4加密解密算法原理与完整源代码实例演示

RC4加密算法 RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron Rivest在1987年设计的密钥长度可变的流加密算法簇.之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节.该算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性.RC4起初是用于保护商业机密的.但是在1994年9月,它的算法被发布在互联网上,也就不再有什么商业机密了.RC4也被叫做ARC4(Alleged RC4——所谓的RC4),因为RSA从来就没有正式发布过这个算法. 原理 R

nginx.conf完整配置实例

#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream;

Lucene之完整搜索实例

1.创建索引器: package yushibujue; import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import java.io.IOException; import java.te