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. android SDK和ADT的更新

      ADT版本较低时,造成xml布局文件无法预览,更新时发现google被墙,找网上的招数暂且解决了问题. 1. SDK的更新: 将https://修改为http:// 修改方法是:在Android SD ...

    2. Linux分区方案

      创建三个分区 1./boot     启动分区     存放内核和启动程序                   空间分配:100M     类型:ext4 2./swap     交换分区     虚 ...

    3. Problem F: Exponentiation大数求幂

      DescriptionProblems involving the computation of exact values of very large magnitude and precision ...

    4. Java中的变量与变量的作用域

      关于Java中的变量及变量的作用域 关于Java中的变量及变量的作用域 0. 变量的概念 在程序运行期间,系统可以为程序分配一块内存单元,用来存储各种类型的数据.系统分配的内存单元要使用一个标记符来标 ...

    5. phpstorm 同步远程服务器代码

      1.打开view —Toolbar,点击红框中的小工具 2.单击Deployment,在connection中填写对应选项, 其中:type勾选sftp root path :点击后面的Autodet ...

    6. 对discuz的代码分析学习(一)目录结构

      主目录 DISCUZ用的是自己的框架,和其他框架应用一样属于单入口应用.主目录下的.php文件,大部分是应用的入口文件. home.php:家园入口,即论坛中类似博客的那个东西.index.php:首 ...

    7. 简谈python反射

      写出一个简单类:import sysclass webserver(object): def __init__(self,host,post): self.host = host self.post ...

    8. 在Windows环境下部署Axis2/C服务

      Apache Axis2/C是C语言实现的网络服务引擎,基于Axis2架构,支持SOAP1.1和SOAP1.2协议,并且支持RESTful风格的Web service. 下面是本人在Windows 7 ...

    9. MYSQL group_concat() 函数

      看来看一下表中的数据 select * from t; 下一步来看一下group_concat函数的用法 select ID,group_concat(Name) from t group by ID ...

    10. 部署nginx+rsyslog补丁

      nginx 配置: user nginx; worker_processes 1; syslog local5 nginx; error_log /var/log/nginx/nginx_error. ...