`
flycomos.lee
  • 浏览: 280482 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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不一样就可以解决问题了!

 

 

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

 java代码:

 

[java] view plain copy
  1. /**  
  2.    * 状态栏消息通知  下载完成  
  3.    * @param context  
  4.    * @param name  
  5.    */   
  6.   public   static   void  notifyTaskFinishToStatusBar(Context context,String name)  
  7.      {  
  8.    String text;  
  9.   if (name!= null ){  
  10.    text=name+context.getString(R.string.has_download);  
  11.   }else {  
  12.    text=context.getString(R.string.has_download);  
  13.   }     
  14.      
  15.   NotificationManager nfm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);  
  16.         Notification notification = new  Notification(R.drawable.icon, text,System.currentTimeMillis());  
  17.         notification.flags=Notification.FLAG_AUTO_CANCEL;//点击自动清除通知   
  18.         Intent openintent = new  Intent();  
  19.         openintent.setClass(context, MainActivity.class );  
  20.         Bundle data=new  Bundle();  
  21.         data.putInt(Constants.BOOT_INDEX_TAG, MainActivity.downloadPageLoadedState);  
  22.         openintent.putExtras(data);  
  23.           
  24.   PendingIntent contentIntent = PendingIntent.getActivity(context, 1 , openintent,  0 );  
  25.     
  26.         notification.setLatestEventInfo(context, context.getString(R.string.qc_download_tip),text, contentIntent);  
  27.         nfm.notify(Constants.QC_DOWNLOAD_NOTIFY, notification);  
  28.      } 
分享到:
评论

相关推荐

    android 状态栏颜色设置

    总结一下,Android状态栏颜色的设置涉及多个API版本和不同类型的组件。理解并掌握这些技巧,可以帮助开发者更好地定制应用界面,提升整体设计感。通过在AndroidManifest.xml中设置主题颜色、使用`getWindow()....

    RK3568 Android11-动态控制状态栏、导航栏的显示和隐藏

    在Android系统中,状态栏和导航栏是用户界面的重要组成部分,它们提供了系统信息显示和应用程序间的导航功能。在某些应用场景下,比如全屏游戏或沉浸式视频观看时,开发者可能需要动态地控制这些元素的显示与隐藏,...

    viewpagetest多页滑动,去掉状态栏,菜单栏

    首先,**ViewPager**是Android SDK提供的一种用于实现多页面滑动效果的组件,常用于实现类似TabLayout的效果或者在水平方向上浏览多个页面。使用ViewPager,开发者可以创建一个可滚动的视图容器,用户可以通过滑动来...

    沉浸式状态栏(渐变透明)

    在Android系统中,实现沉浸式状态栏可以通过多种方式来完成,尤其是在Android 5.0 Lollipop及以上版本中,官方提供了更多的API来支持这一特性。 首先,我们要理解Android系统中关于状态栏的概念。状态栏位于屏幕...

    android 中 ViewPager 与scrollView 冲突的解决

    首先,了解冲突的本质:ViewPager设计初衷是为了处理多个页面间的滑动切换,它会捕获滑动事件,以便平滑地切换页面。而ScrollView则期望能够自由滚动其内部的内容。当这两个组件在同一个层级上,ViewPager可能会拦截...

    Android沉浸式状态栏实现示例

    总的来说,实现Android沉浸式状态栏涉及多个步骤,包括设置透明状态栏、处理导航栏颜色、以及调整布局以适应系统窗口。开发者需要根据目标设备的Android版本选择合适的实现方法,以保证兼容性和视觉效果。通过上述...

    沉浸式状态栏

    需要注意的是,沉浸式状态栏虽然提升了视觉体验,但也可能带来一些问题,比如与状态栏图标颜色的适配,以及在显示某些需要固定顶部元素的应用中可能产生的冲突。因此,在应用中启用沉浸式状态栏时,开发者需要充分...

    Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview

    在Android开发中,ViewPager是一种非常常用的组件,常用于实现页面滑动切换的效果,例如在应用启动页、广告轮播或导航栏中。本教程将详细讲解如何使用ViewPager实现view的轮播效果,包括单个item分页样式和多个item...

    android 多任务下载,并在下载管理界面刷新进度条

    在Android开发中,多任务下载是一项常见的需求,它允许用户同时下载多个文件,极大地提高了效率。而实时更新下载管理界面的进度条则是提供良好用户体验的关键。以下是对这一主题的详细阐述: 1. **多任务下载原理**...

    gson包重复冲突,项目不能正常编译1

    在Android Studio中,遇到“Program type already present”错误通常是由于项目中存在多个版本或重复的依赖库导致的。在这个特定的案例中,错误提示“Program type already present: ...

    利用HorizontalScrollView加Viewpager实现多个的导航标题栏

    `ViewPager`是Android Support Library中的一个控件,主要用于展示多个可以左右滑动的页面。它可以自动管理页面的生命周期,只加载当前页面和相邻的页面,这样可以节省内存。`ViewPager`通常与`PagerAdapter`一起...

    Android-FixedTabScrollView是一个scrollViewViewPager并实现自动顶吸固定顶部控件

    首先,`ScrollView`是Android中的一个滚动容器,它可以包含一个或多个可滚动的视图,但通常不推荐在`ScrollView`中嵌套`ListView`或`RecyclerView`等滚动视图,因为这可能导致滚动行为冲突。然而,在某些场景下,...

    AndroidStudio多项目共享library

    - **依赖冲突**:当多个Library有相同的依赖时,可能产生冲突。使用Gradle的依赖解决机制(如`exclude`规则)来排除冲突。 - **测试**:为Library编写单元测试和集成测试,确保其功能正常,并在引入到其他项目时进行...

    解决Android启动APP的一瞬间系统栏会变成蓝色问题

    在Android开发过程中,有时会遇到一个视觉上的小问题:当应用程序启动时,系统栏会短暂地显示为蓝色,然后才变为预期的颜色。这个问题通常与应用的主题设置有关,尤其是在使用了自定义主题的情况下。本文将详细解释...

    android解决软键盘遮挡输入框的示例代码

    在Android开发中,软键盘弹出时遮挡输入框是一个常见的问题,特别是在手机应用中,用户需要在有限的屏幕空间内进行输入操作。为了解决这个问题,开发者通常需要对布局进行特殊处理,确保输入框始终保持可见。下面...

    Android-安卓架构支持敏捷开发和持续集成服务容器IOC沉浸式状态栏场景切换模拟http请求式导航

    "Android-安卓架构支持敏捷开发和持续集成服务容器IOC沉浸式状态栏场景切换模拟http请求式导航"这一标题揭示了多个关键知识点,它们在现代Android应用开发中起着至关重要的作用。以下是对这些知识点的详细说明: 1....

    android studio进入欢迎界面和工具栏消失

    工具栏是Android Studio中非常重要的一个组成部分,它包含了多个常用的操作按钮,比如运行、调试、构建项目等。此外,还有一些快速访问的功能,如版本控制系统的集成、代码搜索等。因此,当工具栏消失时,会极大程度...

    Android_ScrollView.zip_android_android scrollview_anriod viewfil

    例如,如果一个布局中有多个TextView或ImageView,它们的总高度超过了屏幕高度,那么可以将这些元素放入ScrollView中,使用户能够看到全部内容。 在"Android开发小知识_使用ScrollView实现滚动效果.doc"文档中,...

    android实例源代码-Android MP3播放器,带卡拉OK字幕.zip

    在Android平台上开发一款MP3播放器并集成卡拉OK字幕是一项技术挑战,涉及到多个关键知识点。这个"android实例源代码-Android MP3播放器,带卡拉OK字幕.zip"的压缩包显然提供了一个完整的实现案例,可以供学习者研究...

    android仿微信6.0底部滑动菜单栏+导航栏,ViewPager+RadioGroup+ActionBar

    首先,`ViewPager`是Android SDK中的一个视图容器,主要用于展示多个页面,并且可以左右滑动切换页面。在仿微信6.0的底部菜单栏中,`ViewPager`通常用于承载各个主界面,当用户点击底部菜单时,`ViewPager`会根据...

Global site tag (gtag.js) - Google Analytics