Android 监听Notification 被清除实例代码

 更新时间:2016年07月21日 09:25:46   投稿:lqh  
本文主要介绍Android 监听Notification 事件,这里给大家提供实例代码进行参考,有需要的小伙伴可以参考下

前言

 一般非常驻的Notification是可以被用户清除的,如果能监听被清除的事件就可以做一些事情,比如推送重新计数的问题。

 正文

 private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {

  @Override
  public void onReceive(Context context, Intent intent) {
   if (intent == null || context == null) {
    return;
   }

   mNotificationManager.cancel(NOTIFICATION_ID_LIVE);

   String type = intent.getStringExtra(PUSH_TYPE);
   if (PUSH_TYPE_LINK.equals(type)) {
    //mNumLinkes = 0;
   } else if (PUSH_TYPE_LIVE.equals(type)) {
    //mNumLives = 0;
   }
   //这里可以重新计数
  }
 };


 private void sendLiveNotification() {
  Intent intent = new Intent(NOTIFICATION_CLICK_ACTION);

  NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);

  String title = "Push测试";
  mBuilder.setContentTitle(title);
  mBuilder.setTicker(title);
  mBuilder.setContentText("https://233.tv/over140");
  mBuilder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
  mBuilder.setSmallIcon(R.drawable.ic_action_cast);
  mBuilder.setDefaults(Notification.DEFAULT_ALL);
  mBuilder.setWhen(System.currentTimeMillis());
  mBuilder.setContentIntent(PendingIntent.getBroadcast(this, NOTIFICATION_ID_LIVE, intent, 0));
  mBuilder.setDeleteIntent(PendingIntent.getBroadcast(this, NOTIFICATION_ID_LIVE, new Intent(NOTIFICATION_DELETED_ACTION).putExtra(PUSH_TYPE, PUSH_TYPE_LIVE), 0));

  mNotificationManager.notify(NOTIFICATION_ID_LIVE, mBuilder.build());
 }

代码说明

  1、最重要的是setDeleteIntent,这个在API Level 11(Android 3.0) 新增的

  2、注意不要设置setAutoCancel为true,否则监听器接收不到

  3、这里统一了点击通知和消除通知的操作

  4、注意广播在推送前要注册好

实际使用中发现还是有一点问题,比如Service被Kill掉了,通知栏点击就会没有反应了,这块还需要再考虑一下,比如把Broadcast在AndroidMainfest中监听。

以上就是对Android Notification 事件的资料整理,希望能帮助Android开发的朋友。

相关文章

  • Android Drawable目录下的XML图形文件详解

    Android Drawable目录下的XML图形文件详解

    在 Android 开发中,res/drawable 目录下的 XML 文件是一种强大的图形资源定义方式,它们比位图资源更灵活、更易于维护,下面我将详细解析各种类型的 Drawable XML 文件及其使用方法,需要的朋友可以参考下
    2025-04-04
  • android实现上传本地图片到网络功能

    android实现上传本地图片到网络功能

    这篇文章主要为大家详细介绍了android实现上传本地图片到网络功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Android RecyclerView点击事件

    Android RecyclerView点击事件

    这篇文章主要为大家详细介绍了Android RecyclerView点击事件的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android Retrofit文件下载进度显示问题的解决方法

    Android Retrofit文件下载进度显示问题的解决方法

    这篇文章主要为大家详细介绍了Android Retrofit文件下载进度显示问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Android Activity回收与操作超时处理

    Android Activity回收与操作超时处理

    这篇文章主要介绍了Android Activity回收与操作超时的相关处理操作,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • Android利用Glide获取图片真正的宽高的实例

    Android利用Glide获取图片真正的宽高的实例

    本篇文章主要介绍了Android利用Glide获取图片真正的宽高的实例,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • Android实现图片文字识别

    Android实现图片文字识别

    这篇文章主要为大家详细介绍了Android实现图片文字识别,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Glide4 高效加载图片的配置详解

    Glide4 高效加载图片的配置详解

    本篇文章主要介绍了Glide4 高效加载图片的配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • mui.init()与mui.plusReady()区别和关系

    mui.init()与mui.plusReady()区别和关系

    给大家分享一下在使用MUI进行APP开发的时候,mui.init()与mui.plusReady()区别以及使用上不同之处。
    2017-11-11
  • Android和PC端通过局域网文件同步

    Android和PC端通过局域网文件同步

    这篇文章主要为大家详细介绍了Android和PC端通过局域网文件同步的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07

最新评论