android状态栏中多个通知冲突的问题

网上看到的解决办法:

如果用相同的通知id, 该怎么告诉处理通知的活动,每个通知的内容呢?
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
最后一个参数可以保证显示的是最新的那个通知
如果用不同的通知id, 为什么处理通知的活动得到的Intent总是第一个通知的Intent呢?
多个Intent是根据它们的Data属性来区分的,如果Data相同,将认为是同一个Intent

 

实践之后不是很好用,请教别人找到了解决办法。

PendingIntent.getActivity(Context context, int requestCode,Intent intent, int flags)

requestCode 值如果一样,就会出现多个通知都指向一个intent。

只要requestCode不一样就可以解决问题了!

 

 

贴一段完整的代码:下载完成后通知栏出现提示通知

 

/**
   * 状态栏消息通知  下载完成
   * @param context
   * @param name
   */
  public static void notifyTaskFinishToStatusBar(Context context,String name)
     {
   String text;
  if(name!=null){
   text=name+context.getString(R.string.has_download);
  }else{
   text=context.getString(R.string.has_download);
  }   
   
  NotificationManager nfm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notification = new Notification(R.drawable.icon, text,System.currentTimeMillis());
        notification.flags=Notification.FLAG_AUTO_CANCEL;//点击自动清除通知
        Intent openintent = new Intent();
        openintent.setClass(context, MainActivity.class);
        Bundle data=new Bundle();
        data.putInt(Constants.BOOT_INDEX_TAG, MainActivity.downloadPageLoadedState);
        openintent.putExtras(data);
       
  PendingIntent contentIntent = PendingIntent.getActivity(context, 1, openintent, 0);
  
        notification.setLatestEventInfo(context, context.getString(R.string.qc_download_tip),text, contentIntent);
        nfm.notify(Constants.QC_DOWNLOAD_NOTIFY, notification);
     }

时间: 2024-09-14 20:01:03

android状态栏中多个通知冲突的问题的相关文章

Android开发中ListView 和 ScrollView 冲突如何解决

ListView 与 ScrollView 同在一界面会导致ListView 显示变形,ListView只显示出了一个条目的高度,本文我们来谈谈如何解决Android应用中ListView 和 ScrollView 共生的问题. 一开始就想着用一个ScrollView把主要内容和评论区的ListView包起来,然后添加各个控件的内容即可,但是写出来之后发现ListView只显示出了一个条目的高度,并且不能滑动,网上搜了一下发现原因是ScrollView和ListView都是可滑动的,把它们放在一

Android沉浸式状态栏与输入框上移的冲突问题

问题描述 Android沉浸式状态栏与输入框上移的冲突问题 在应用中设置了沉浸式状态栏但是输入框在输入法弹出后不自动上移了不做沉浸式就会上移怎么解决这个冲突做了沉浸式后android:windowSoftInputMode=""stateVisible|adjustResize""这个属性就没效果了 解决方案 http://blog.csdn.net/carlos1992/article/details/46773059 解决方案二: android:windowS

解决Android 沉浸式状态栏和华为虚拟按键冲突问题

对于现在的 App 来说,布局页面基本都会用到沉浸式状态栏,单纯的沉浸式状态栏很容易解决,但是在华为手机上存在一个底部虚拟按键的问题,会导致页面底部和顶部出现很大的问题,比如页面底部导航栏被按键覆盖,导致底部无法操作,顶部状态栏布局被撑的很高,丑的不忍直视,这里就将两者的冲突问题一并解决!先看下实现的效果图: 这是我自己的手机,OnePlus 3T 7.1.1版本(免费广告,没给我钱的啊),不是华为的手机,但是有个虚拟按键可以设置,可以看到底部导航栏没有问题,顶部状态栏也成功实现,效果图看完,下

来瞧瞧 Android N 中的通知长成啥样了

本文讲的是来瞧瞧 Android N 中的通知长成啥样了, Android 通知往往是应用和用户之间至关重要的交互形式.为了提供更好的用户体验,Android N 在通知上做出了诸多改进:收到消息后的视觉刷新,改进对自定义视图的支持,扩展了更加实用的直接回复消息的形式,新的 MessagingStyle,捆绑的通知. 同样的通知,不一样的"面貌" 首先,最明显的变化是通知的默认外观已经显著改变.除了应用程序的图标和名称会固定在通知内,很多分散在通知周围的字段也被折叠进新的标题行内.这一

broadcast-有关在android代码中调用adb命令发送通知,没有回调onReceive方法问题

问题描述 有关在android代码中调用adb命令发送通知,没有回调onReceive方法问题 大神们,非常谦虚的请教下问题,是这样,我在终端输入adb shell am broadcast -a testBroadcastReceiver --es packageName "you packageName",可以回调onReceive方法,但是当我把该命令写在代码中,同样执行同样的命令,只是用代码实现,就不会调用onReceive,请帮忙解决下~ 解决方案 http://blog.c

android中view手势滑动冲突的解决方法_Android

Android手势事件的冲突跟点击事件的分发过程息息相关,由三个重要的方法来共同完成,分别是:dispatchTouchEvent.onInterceptTouchEvent和onTouchEvent. public boolean dispatchTouchEvent(MotionEvent ev) 这个方法用来进行事件的分发.如果事件传递到view,那么这个方法一定会被调用,返回结果受当前View的onTouchEvent和下级View的dispatchTouchEvent方法的影响,表示是

android 滑动冲突-Android ScrollView 中 TextView 多行显示问题,textview不能滑动

问题描述 Android ScrollView 中 TextView 多行显示问题,textview不能滑动 textview的多行滚动变成不能滑动了,被scrollview的滑动给拿去了. 至于 百度说的改成 wrap_content也是不行的. 解决方案 Android textview 多行显示Android textview显示多行android textview 多行之后显示省略号 解决方案二: android:layout_height="wrap_content" 给个高

Android Service中方法使用详细介绍

  Android Service中方法使用详细介绍 在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务.例如,一个从service播放音乐的音乐播放器,应被设置为前台运行,因为用户会明确地注意它的运行.在状态栏中的通知可能会显示当前的歌曲并且允许用户启动一个activity来与音乐播放器交互. Service的两种实现形式 1.非绑定 通过调用应用程序组件(例如Activity)的startService()方法来启动一个服务.一旦启动,服务就

通知栏状态-请问,谁知道怎么获得android状态栏的状态

问题描述 请问,谁知道怎么获得android状态栏的状态 现在开发中有一个需求就是做和ios的Assistive Touch 一样功能的app,现在通过反射可以让状态栏拉下来和滚上去了.但是有一个问题就是,怎么获得这个状态栏的状态呢?求大神们支招 解决方案 Activity或者Service都能初始化一个状态栏通知.可因为Activity只有在活动状态并获得焦点时才能执行操作,所以还是建议用Service来创建状态栏通知.这样,即使用户正在使用其他程序或者设备已经休眠时,仍然可以从后台创建通知.