当前位置: 首页 > 知识库问答 >
问题:

取消使用 setGroup 创建的捆绑包内的通知

岳浩穰
2023-03-14

我将多个通知堆叠在一个包中,使用:

setGroup("groupname");

setGroupSummary(true);

方法。

每个通知都有一个操作。操作待定意图中的意图包含可用于取消通知的通知ID。

当通知未绑定到组中并显示在摘要通知中时,调用NotificationManager。cancel(id)立即取消通知。

但是,如果对通知进行了分组和汇总,则NotificationManager.cancel(id)不会执行任何操作。

有人能告诉我怎么解决这个问题吗?

待处理的操作意图如下:

  Intent notificationSettingsIntent = new Intent(context.getApplicationContext(), NotificationSettingsActivity.class);
  notificationSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  notificationSettingsIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
  notificationSettingsIntent.putExtra("fromNotification",true);
  notificationSettingsIntent.putExtra("notif_id",counterOfValidNotifications+6666);
  //Log.d("FragmentCreate","Setting notif_id inside action button "+(counterOfValidNotifications+6666)+" for restid "+c.getInt(restidindex));
  PendingIntent notificationSettingsActivityPendingIntent = PendingIntent.getActivity(context,(int)(System.currentTimeMillis()%10000),notificationSettingsIntent,PendingIntent.FLAG_ONE_SHOT);

  notificationBuilder.addAction(R.drawable.ic_notifications_off_black_24dp,"Notification Options",notificationSettingsActivityPendingIntent);

这个意图中的notif_id是在指定的活动中接收的,这里我基本上称之为取消(id)。

共有1个答案

南门焱
2023-03-14
(int)(System.currentTimeMillis()%10000)

这还不够。如果您的所有通知都在一毫秒内创建,它们将只有一个PendingIntent。您将标志设置为onesHot,因此在第一个之后,它们甚至不会被传递。

 类似资料:
  • 我目前正在创建一个时间线卡片,方式如下: 这将在时间线中创建一张活卡。我尝试添加另一个相同的标签,以为它会把他们捆绑在一起,最近的将是捆绑封面卡,但它没有做到这一点。 我看了一下文档,我能找到的只是如何使用镜像API来实现它。那么有没有一种方法可以使用GDK创建捆绑卡呢?还是只有通过镜像API才可用?多谢了。

  • 我正在将我的spring-java项目转移到OSGi。 我有一些依赖项,这些依赖项在spring ebr repo或maven repo中不能作为包提供。处理它们的最佳方法是什么? null

  • 我正在尝试使用cq中的OSGI包创建自定义标记库。实际上,我创建了所有必要的文件,但我无法放置mytags。生成时META-INF文件夹下的tld文件。为此,我使用了maven bundle插件。这是我的代码,用于将资源包含在META-INF文件夹中 注意:我已将标记文件放在“src\main\resources\META-INF\myTags”下 我使用了<代码> 这是我的生成错误 [错误]捆绑

  • 我正在为Mac计算机创建一个JAVA桌面应用程序,使用jpack将所需的JRE捆绑到应用程序中,最后将. app发送给客户。 对于新的m1苹果arm硅计算机,我不想使用正确的JRE(intel)为每个处理器架构创建不同的应用程序 我试图创建两个。应用程序和使用mac命令行中的lipo工具,但这并不能真正起作用。 有什么建议吗?

  • 我直接从android网站为我的mac下载了ADT捆绑包。一切都很好,直到我创建了一个新项目,eclipse创建了我的项目以及一个名为“appcompat_v7”的文件夹。 但我不这样做,因为这样我就不能遵循教程,因为你不能扩展一个方法超过一次,例如: 我能做什么?我不能遵循任何教程。我正在尝试这个(https://www.youtube.com/watch?v=E780gbh6vLU),但我不能

  • 问题内容: 如何从jar库创建OSGi捆绑包? 问题答案: 如果您使用的是eclipse:有一个向导。 它允许您选择许多jar库,并创建一个包含这些jar的插件项目(即OSGi捆绑包)。 你可以在这里找到它: