android 同时发送几条通知

=======

下面是转载的文章。

 同时发送几条通知把ID添加,接收的时候找到这个id就可以出来多条了。

还是不太明白或者编码实现不了的可以加我QQ。

博客很少上了。

========

注意通知中PendingIntent.getActivity(Context context,
int requestCode,
Intent intent, int flags)这几个参数:

context The Context in which this PendingIntent should start the activity.
requestCode    Private request code for the sender (currently not used).
intents Array of Intents of the activities to be launched.
flags May be FLAG_ONE_SHOTFLAG_NO_CREATEFLAG_CANCEL_CURRENTFLAG_UPDATE_CURRENT,
or any of the flags as supported by Intent.fillIn() to
control which unspecified parts of the intent that can be supplied when the actual send happens.

google API中介绍requestCode中说明是当前未使用,一般都会赋值为0,但是当你发送多个通知,且每个通知都包含Extras时,这个就有用了。这个值可以用来标识不同通知中的Intent,主要是结合后面的flags来使用,比如,发送两个通知,id分别是1和2,当第二次发送1、2的通知时,需要更新前一次通知中的intent内容,如果不用requestCode来标识一下,则默认用最后一次发的通知覆盖前几次的通知intent。

正确是使用方法是:PendingIntent.getActivity(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);  requestCode来标识不同通知,flags中的PendingIntent.FLAG_UPDATE_CURRENT用来使用后面通知更新前面通知,使用这个flag要注意,intent一定不能为null,否则会报空指针错误。

另外,当我们把Activity 启动模式设置为 singleTask 之后 当我们下次 再去 用Intent 启动 这个 Activity 的时候 就不会去调用 onCreate方法 也不能在onRestart()方法中取,而是去调用onNewIntent()方法
然后把Intent中的数据传给它;

  • <activityandroid:name="TestActivity"
  • android:launchMode="singleTask"/>      示例:

    @Override

      protected void onNewIntent(Intent intent) {

    super.onNewIntent(intent);



    int hasMsgNotifyFlag = 0;

    if(intent!=null){

    Bundle bundle = intent.getExtras();

    if(bundle!=null){

    hasMsgNotifyFlag = bundle.getInt("id");

    }

    Log.i( "main tab msg=>", hasMsgNotifyFlag + "");

    }

    }

    /** 

       * 添加一个notification 

       */  

      public void addNotification(Context context, int id, boolean flag){  

          NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);  

          Notification notification = new Notification(R.drawable.icon, "hello,here", System.currentTimeMillis());  

          notification.flags = Notification.FLAG_AUTO_CANCEL; 

          Intent intent = new Intent(context, TestActivity.class);  

          Bundle bundle = new Bundle();

          bundle.putInt("id", id);

          intent.putExtras(bundle);

          PendingIntent contentIntent = PendingIntent.getActivity(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);  

          notification.setLatestEventInfo(context, "有新消息", id + "", contentIntent);  

          nm.notify(id, notification);  

      }

  • android 同时发送几条通知的更多相关文章

    1. Android种使用Notification实现通知管理以及自定义通知栏(Notification示例四)

      示例一:实现通知栏管理 当针对相同类型的事件多次发出通知,作为开发者,应该避免使用全新的通知,这时就应该考虑更新之前通知栏的一些值来达到提醒用户的目的.例如我们手机的短信系统,当不断有新消息传来时,我 ...

    2. Android 自学之进度条ProgressBar

      进度条(ProgressBar)也是UI界面中的一种非常使用的组件,通常用于向用户显示某个耗时完成的百分比.因此进度条可以动态的显示进度,因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应, ...

    3. Android之发送短信和接收验证码

        最近项目需求需要发送短信和接收验证码并将验证码显示在输入框中 以下是我的记录    前提---权限     <uses-permission android:name="andro ...

    4. 【转】24. android dialog ——ProgressDialog 进度条对话框详解

      原文网址:http://blog.csdn.net/jamesliulyc/article/details/6375598 首先在onCreateDialog方法里创建一个ProgressDialog ...

    5. Android开发的16条小经验总结

      Android开发的16条小经验总结,希望对各位搞Android开发的朋友有所帮助. 1. TextView中的getTextSize返回值是以像素(px)为单位的, 而setTextSize()是以 ...

    6. android:Notification实现状态栏的通知

      在使用手机时,当有未接来电或者新短消息时,手机会给出响应的提示信息,这些提示信息一般会显示到手机屏幕的状态栏上. Android也提供了用于处理这些信息的类,它们是Notification和Notif ...

    7. Android如何使用Notification进行通知

      有两张图片素材会放在末尾 activity代码,和XML布局 package com.example.myapplication; import androidx.appcompat.app.AppC ...

    8. PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制

      2013年10月06日最新整理. PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制 微信公共平台消息主动推送接口一直是腾讯的私用接口,相信很多朋友都非常想要用到这个功能. 通过学习 ...

    9. Android View 之进度条+拖动条+星级评论条....

      PS:将来的你会感谢现在奋斗的自己.... 学习内容: 1.进度条 2.拖动条 3.星级评论条 1.进度条...       进图条这东西想必大家是很熟悉的...为了使用户不会觉得应用程序死掉了,因此 ...

    随机推荐

    1. R与数据分析旧笔记(五)数学分析基本

      R语言的各种分布函数 rnorm(n,mean=0,sd=1)#高斯(正态) rexp(n,rate=1)#指数 rgamma(n,shape,scale=1)#γ分布 rpois(n,lambda) ...

    2. 一句话美化你的下拉框之jQuery.selectMM插件

      之前很喜欢 jquery.Dropkick 这个老外美化框插件,但是:IE情况下如果数据多滚动条出现的时候就滚不了,作者也没修复 于是准备自己写一款(确切的说是修改一款吧!!).这款插件是在16素材网 ...

    3. Android Sdk 国内镜像下载地址

      大连东软信息学院镜像服务器地址:- http://mirrors.neusoft.edu.cn 端口:80北京化工大学镜像服务器地址:- IPv4: http://ubuntu.buct.edu.cn ...

    4. 四轴飞行器1.5 各种PID对比分析及选择

      原创文章,欢迎转载,转载请注明出处 这篇文章主要介绍我对PID的理解,以及选择PID算法的过程. 一 PID的理解和学习过程 二 飞控的PID效果 先上个飞控PID的响应的视频:介绍在后面 地址:ht ...

    5. Linux cd命令

      1: cd  不加任何参数,它会自动跳到用户的家目录中去! 2: ~ 表示用户的家目录 3: cd ~userNmae/     这样可以进入指定用户的家目录中去! 4: cd - 跳到上一次所在的目 ...

    6. 使用 Java 实现 Comet 风格的 Web 应用

      参考这个: http://www.ibm.com/developerworks/cn/web/wa-cometjava/

    7. 2015 8月之后"云计算"学习计划

      1. 自己在家搭建openstack,使用RDO搭建自己的openstack环境,不必源码方式搭建,只要搭建起来就好,越快越好 --以RDO方式,搭建一个all-in-one的主机,只需要租一台虚拟机 ...

    8. RTTI、虚函数和虚基类的实现方式、开销分析及使用指导(虚函数的开销很小,就2次操作而已)

      白杨 http://baiy.cn “在正确的场合使用恰当的特性” 对称职的C++程序员来说是一个基本标准.想要做到这点,首先要了解语言中每个特性的实现方式及其开销.本文主要讨论相对于传统 C 而言, ...

    9. Java泛型的一点用法(转)

      1.一个优秀的泛型,建议不要这样写public static <K, V> Map<K, V> getMap(String source, String firstSplit, ...

    10. hihoCoder 1388 Periodic Signal(FFT)

      [题目链接] http://hihocoder.com/problemset/problem/1388 [题目大意] 给出A数列和B数列,求下图式子: [题解] 我们将多项式拆开,我们可以得到固定项A ...