Notification介绍
来源:互联网 发布:linux 最小安装 编辑:程序博客网 时间:2024/05/16 19:04
(一)创建notification,与其相关的两个类:
(1)Notification(icon,tickerText, when)
Icon是图标,一般放在drawable中
tickerText是图标后面的内容,如:“Missed call from5554”
when显示图标什么时候创建的,如可以采用:System.currentTimeMillis()
创建了notification后紧接着调用notification.setLatestEventInfo设置事件信息
notification.setLatestEventInfo(context,contentTitle,contentText,contentIntent)
- context:一般是this指向当前对象
- contentTitle:相当于标题,即图中蓝色笔画的内容即Missedcalls
contentText:消息,即里面的内容,如图中的2missed calls
contentIntent是PendingIntent对象,所以下面要创建PendingIntent的对象。
创建PendingIntent对象:
PendingIntentcontentIntent=PendingIntent.getActivity(context,requestode,intent,flags)
- context:this
- requestode:0
- intent:创建一个intent对象,即当用户点击该notification时,运行哪一个Activity
- flags:FLAG_CANCEL_CURRENT如果PendingIntent已经存在,在生成一个新的之前,当前的被取消
FLAG_NO_CREATE如果不存在PendingIntent,仅仅返回空而不会创建PendingIntent对象
FLAG_UPDATE_CURRENT如果PendingIntent已经存在,先保持,可以被新的代替
这里创建Intent对象就不多说了,比较简单
(2)NotificationManager:将创建好的Notification在状态栏显示出来
这个对象创建采用getSystemService(NOTIFICATION_SERVICE)实现的,然后采用
manager.notify(id,notification)实现notification的发送。其中id可以定义为静态量,主要是用于标识用的,比如后面的notification的取消可以通过id寻找要取消的notification
下面介绍下程序的实现:
(1)创建一个类是继承IntentService的
package com.syz.statusbar;import android.app.IntentService;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Intent;import android.util.Log;public class StatusService extends IntentService {private static final String TAG = "StatusService";public StatusService() {super("StatusService");// TODO Auto-generated constructor stub}@Overrideprotected void onHandleIntent(Intent intent) {Log.i(TAG, "onHandleIntent:开始下载....");getnotification(false); //主要用于模拟下载,开始传递是false,实现显 //示“下载中...”10秒后再传递true实现显示“下载完成”try {Thread.sleep(10000);getnotification(true);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private void getnotification(boolean f) {Notification notification =new Notification(R.drawable.ic_launcher, "开始下载", System.currentTimeMillis());Intent intent=new Intent(this, MainActivity.class);PendingIntent contentIntent=PendingIntent.getActivity(this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT);if(!f) {notification.setLatestEventInfo(this, "下载", "下载中。。。。", contentIntent);}else{notification.setLatestEventInfo(this, "结束", "下载完成", contentIntent);}NotificationManager manager=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);manager.notify(R.menu.activity_main, notification);}}
(2)创建一个Activity
package com.syz.statusbar;import android.os.Bundle;import android.app.Activity;import android.app.NotificationManager;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button StartService=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);StartService=(Button)findViewById(R.id.StartService);StartService.setOnClickListener(listener);}private OnClickListener listener=new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent();intent.setClass(MainActivity.this, StatusService.class);startService(intent);}};@Overrideprotected void onStart() {super.onStart();NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);//用于当点击notification时,调用指定的Activitymanager.cancel(R.menu.activity_main); //同时取消notification}}
- Notification介绍
- Notification介绍
- 1 Notification介绍
- Android Notification介绍
- Notification FLAG 的介绍
- OpenStack Notification System介绍
- PhoneGap API介绍:Notification
- Android-Notification 简单介绍
- Notification详细介绍
- Android--Notification基础介绍
- Android的Notification实例介绍
- Notification与NotificationManager详细介绍
- 消息栏通知(Notification)介绍
- Notification 与状态栏信息介绍
- Notification与NotificationManager详细介绍
- 消息栏通知(Notification)介绍
- Notification与NotificationManager详细介绍
- Notification与NotificationManager详细介绍
- adobe acrobat professional V8.1.0安装
- 第六周上机任务项目3-平面坐标点类
- 文件系统模型
- 设计模式之类之间的关系
- 数据库常用连接
- Notification介绍
- 电脑右下角的扬声器出现了红叉
- hdu 2537(水)
- C程序设计语言(The C Programming Language) 读书笔记
- Linux 开发工具及编程工具
- Codeforce 65D - Harry Potter and the Sorting Hat(DP+hash+set)
- oracle学习之路--数据库实例、方案、用户、表空间、表对象之间的关系
- Firebug入门指南
- ASP.NET MVC3 路由系统