android通知

Notification的基本使用:

创建一个NotificationManager类实例,用来发送通知

NotificationManager manager = (Notification)getSystemService(NOTIFICATION_SERVICE);  

创建一个Notification类实例,用来设置通知的各个细节,比如图标、标题、内容..等

Notification notification = new Notification(); 

通知的设置主要有两个模块,一个是在状态栏上的显示,一个是在下拉状态栏后的显示,

设置通知在状态栏上显示的细节


notification.icon = R.drawable.ic_launcher;//设置通知在状态栏上显示的图标  
  
notification.tickerText = "你有一条新消息";//当通知触发时会显示在状态栏上 

设置通知在下拉状态栏后显示的细节

  1. //设置下拉状态栏后该通知的布局,可以在自定义Notification布局时使用  
  2. RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.notify);  
  3. notification.contentView = remoteViews;  
  4.   
  5. notification.when = System.currentTimeMillis();  //设置通知显示的时间  
  6.   
  7. 获得一个PendingIntent对象,用来设置用户点击通知时发生的跳转  
  8. Intent newintent = new Intent(this,MainActiviy.class);  
  9. PendingIntent pintent = PendingIntent.getActivity(getContext(), 0, newintent, 0); 

可以看到这里有一个PendingIntent对象,PendingIntent对象其实就相当于Intent对象的包装,Intent是立即跳转到某个Activity或者Service等,而PendingIntent是在某个时刻触发了才会进行跳转

要得到一个pendingIntent对象,使用PendingIntent类的静态方法,主要有以下几种:
getActivity(Context, int, Intent, int)   【跳转到一个Activity】
getBroadcast(Context, int, Intent, int)【打开一个BroadcastReceiver】
getService(Context, int, Intent, int)    【启动一个Service】

可以看到,这里有4个参数,它们分别是:
第一个参数 :当前的上下文对象,比如在Activity中可以通过getContext()获得
第二个参数 :当有多条通知时会用到,如果两个通知的requestCode值一样时,后面的通知就会对之前的通知起作用,配合第四个参数设置
第三个参数 :传入一个Intent对象,这个intent用来做用户点击通知时的跳转
第四个参数 :flag标志位,用来表示intent中的数据的覆盖方式,比如你推送了消息1,并在其中的Intent中putExtra了一个值“ABC”,在未点击该消息前,继续推送第二条消息,并在其中的Intent中putExtra了一个值“CBA”,这时候,如果你设置的是PendingIntent.FLAG_UPDATE_CURRENT,那么当你单击消息1或者消息2,你会发现,他俩个的Intent中读取过来的信息都是“CBA”,就是说,第二个替换了第一个的内容,如果你设置的是PendingIntent.FLAG_CANCEL_CURRENT,会发现点击消息1时,没反应,第二条可以点击。flag的作用只有在第二个参数requestCode一样时才会起作用

以上都设置完成之后,只需要通过NotificationManager对象来发送通知即可:

manager.notify(1,notification);  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值