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. ##DAY14——StoryBoard

      •iOS下可视化编程分为两种⽅式:xib和storyboard. •在使用xib和storyboard创建GUI过程中,以XML文件格式 存储在Xcode中,编译时生成nib的二进制文件.在运行时, ...

    2. c++实现单例

      单例宏: //单件定义宏 //------------------------------------- // 在头文件中申明 // DECLARE_SINGLEOBJ( CSampleClass ) ...

    3. fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

      xxxxxx.lib(xxxxxx.obj) : fatal error LNK1112: module machine type 'X86' conflicts with target machin ...

    4. OpenGL学习之windows下安装opengl的glut库

      OpenGL学习之windows下安装opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装.  Windows环境下的GLUT下载地址:(大小约为15 ...

    5. Android ActionBar详解(一)--->显示和隐藏ActionBar

      MainActivity如下: package cc.testsimpleactionbar0; import android.os.Bundle; import android.view.View; ...

    6. 循环-21. 求交错序列前N项和

      /* * Main.c * C21-循环-21. 求交错序列前N项和 * Created on: 2014年8月18日 * Author: Boomkeeper ***********测试通过**** ...

    7. BZOJ 4300 绝世好题(位运算)

      [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4300 [题目大意] 给出一个序列a,求一个子序列b,使得&和不为0 [题解] ...

    8. git 导入代码到已有仓库

      git remote add origin https://----------- git push -u origin master //这两行将该目录下的文件推送到远端(origin)上的 &qu ...

    9. (92) Web Crawling: How can I build a web crawler from scratch? - Quora

      (92) Web Crawling: How can I build a web crawler from scratch? - Quora How can I build a web crawler ...

    10. hdoj 1052 Tian Ji -- The Horse Racing【田忌赛马】 【贪心】

      思路:先按从小到大排序, 然后从最快的開始比(如果i, j 是最慢的一端, flag1, flag2是最快的一端 ),田的最快的大于king的 则比較,如果等于然后推断,有三种情况: 一:大于则比較, ...