Android之Notification初识


1.Notification创建

   首先,介绍一下,创建一个通知所需要用到的类和方法

   

 NotificationManager类

 NotificationManager类是用来管理系统的所有通知的类,该类的对象必须通过Context类的getSystemService()方法获取。完整代码:

NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

  notify()作用是告知系统显示该通知,有notify (int id, Notification notification)和notify (String tag,int id, Notification

  notification),id表示通知的id,tag表示通知的标志,主要用于区分各个通知,notification指的是通知对象;

 cancel(int id) 表示移除指定id的通知,cancel(String tag,int id)移除指定Id和tag的通知,cancelAll()移除所有通知。

  Notification类

   notification有一些常用的属性:

    icon 设置通知图标(在API23后使用setSmallIcon(Icon)替代)

    number 通知所显示的事件数量,例如,收到邮件通知,则指的是邮件未读数量(这是用API11创建的通知所表现的作用)。如果通知是用Notification.builder创建,则number表示扩展通知视图,为0或者负数的时候,通知不显示。

   tickerText 通知显示在通知栏的文本,只在通知栏上显示一次。

   when 系统当前时间

   flags 取值有:

                FLAG_AUTO_CANCEL 该通知能被状态栏的清除按钮给清除掉
FLAG_NO_CLEAR 该通知不能被状态栏的清除按钮给清除掉
FLAG_ONGOING_EVENT 通知放置在正在运行
FLAG_INSISTENT 是否一直进行,比如音乐一直播放,知道用户响应

   
    defaults 设置默认值

DEFAULT_ALL 使用所有默认值,比如声音,震动,闪屏等等
DEFAULT_LIGHTS 使用默认闪光提示
DEFAULT_SOUND 使用默认提示声音
DEFAULT_VIBRATE 使用默认手机震动

  contentView 拉下通知栏后,通知条显示视图,类型是RemoteView;


 contentIntent 点击通知条控件时,响应的意图


   一些常用的方法

    构造方法:

     public Notification (int icon, CharSequence tickerText, long when),如果使用属性的方式设置这些值,那也可以使用无参构造函数
  
  在API11之后使用Notification.builder()创建

   setLatestEventInfo(Context context,CharSequence title, CharSequence content, PendingIntent intent);
             本方法用于显示通知栏下拉后,通知条的内容。

 PendingIntent类

PendingIntent这个类用于处理即将发生的事情。

该对象的获取方式为, PendingIntent.getActivity(Context context,int requestCode,Intent intent,int flags);requsetCode和flags一般默认设置为0;


下面用上面提到的知识,写一个简单的通知(基于API11之前):

public void showBaseNotification() {
		NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
		Notification notify = new Notification();
		notify.icon = R.drawable.ic_launcher;
		notify.tickerText = "您有新短消息,请注意查收!";
		notify.when = System.currentTimeMillis();
		PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
				new Intent(this, MainActivity.class), 0);
		notify.setLatestEventInfo(this, "Notification Title",
				"This is the notification message", pendingIntent);
		notify.number = 1;
		notify.flags |= Notification.FLAG_AUTO_CANCEL; 
		// 通过通知管理器来发起通知。如果id不同,则每click,在statu那里增加一个提示
		manager.notify(1, notify);
	}

 基于API11之后:

	public void showNotification() {
		NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
		NotificationCompat.Builder nb = new NotificationCompat.Builder(
				getApplicationContext())
				.setContentIntent(
						PendingIntent.getActivity(MainActivity.this, 0,
								new Intent(this, MainActivity.class),
								PendingIntent.FLAG_UPDATE_CURRENT))
				.setAutoCancel(true)
				.setContentTitle("test title")
				.setContentText("message")
				.setSmallIcon(R.drawable.ic_launcher)
				.setLights(Color.RED, 600, 1000)
				.setVibrate(new long[] { 0, 200, 300, 500 })
				.setSound(
						RingtoneManager
								.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
		manager.notify(1, nb.build());

	}



   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 掀起你的盖头来——初识Android 1.1 认识Android 1.2 Android的背景 1.2.1 Android的历史 1.2.2 Android的发展 1.3 我的Android我做主 1.3.1 开发基于Android平台的应用 1.3.2 参加Android开发者大赛 1.3.3 个人英雄主义再现——得到更多人的认可和尊重 1.3.4 获得应有的收益——AndroidMarket 1.4 真实体验——Android模拟器 1.4.1 模拟器概述 1.4.2 模拟器和真机的区别 1.4.3 模拟器使用注意事项 1.5 更上一层楼——加入Android开发社区 【视频列表】 第2章 工欲善其事 必先利其器——搭建Android开发环境 第3章 清点可用资本——AndroidSDK介绍 第5章 千里之行始于足下——第一个应用HelloWorld 第7章 良好的学习开端——Android基本组件介绍之我的美丽我做主——Android中应用界面布局 第7章 良好的学习开端——Android基本组件介绍之不积跬步无以至千里——常用widget组件介绍 第7章 良好的学习开端——Android基本组件介绍之友好的菜单——menu介绍与实例 第7章 良好的学习开端——Android基本组件介绍之Android应用的灵魂——Intent和Activity介绍与实例 第7章 良好的学习开端——Android基本组件介绍之用好列表,做好程序——列表(ListView)介绍与实例 第7章 良好的学习开端——Android基本组件介绍之友好地互动交流——对话框(Dialog)介绍与实例-1 第7章 良好的学习开端——Android基本组件介绍之友好地互动交流——对话框(Dialog)介绍与实例-2 第7章 良好的学习开端——Android基本组件介绍之温馨的提醒——Toast和Notification应用 第8章 移动信息仓库——Android的数据存储操作之Android数据存储概述 第8章 移动信息仓库——Android的数据存储操作之轻轻地我保护——SharedPreferences存储-1 第8章 移动信息仓库——Android的数据存储操作之轻轻地我保护——SharedPreferences存储-2 第9章 我来“广播”你的“意图”——Intent和Broadcast面对面 第10章 一切为用户服务——Service应用实例 第12章 Android综合案例一——RSS阅读器实例 第14章 Android综合案例三——基于Android的豆瓣网(Web2.0)移动客户端开发 第15章 Android综合案例四——在线音乐播放器 第16章 Android综合案例五——手机信息查看助手

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值