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

使用相同的请求代码保留两个挂起的意图

孟海
2023-03-14

我正在用Android开发一个报警应用程序。流程非常简单,我只是创建了一个pendingent,然后在AlarmManager中调用setExact()方法,如下所示。

        Intent myIntent = new Intent(context, BroadcastReceiver.class);
        pendingIntent = PendingIntent.getBroadcast(context, 0, myIntent, 0);

        AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
        alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, 
        System.currentTimeMillis() + difference, pendingIntent);

经过一些测试,我意识到,使用上面的代码片段,我只能设置一个警报,因为我将PendingContent的requestCode设置为零,如果我将另一个警报的requestCode设置为0,那么它将覆盖前一个警报。有没有办法在不更改请求代码的情况下修复此问题?我在想也许这些标志可以帮助我,但我没有找到一个不覆盖之前pendingIntent的标志。

我知道最明显的解决方案是将0更改为另一个int,然后跟踪我所有的int,选择一个未使用的。如果我刚刚开始项目,这个解决方案会很好,但是我已经在中间,我使用预定义的枚举作为请求代码。更改此机制并跟踪单个int是非常困难的,这就是为什么我问是否有一种方法在注册具有相同Request estCode的新代码时不覆盖悬而未决的Intent。提前谢谢你。

共有2个答案

毛淳
2023-03-14

我想问的是,是否有某种类型的标志能够区分它们

没有,这是有意义的,因为这已经是requestCode参数的目的。

有关信息,请参阅以下有关标志的选项:

您必须更改机制,以使不同的requestCodes可以用于挂起的意图。这可能是很多工作,但这是你必须做的。

陶高峻
2023-03-14

您可以将意图设置为唯一的,即在每个意图上设置不同的操作。然后您仍然可以使用相同的请求代码,并具有不同的挂起内容。

如果您想稍后取消警报,则需要跟踪所使用的操作。

 类似资料:
  • 即使传递了相同的意图ID,我也无法检索相同的意图。 我已检查广播接收器在创建待定意图时使用的上下文是否完全相同。 创建PendingEvent时。 Logcat:

  • 问题内容: 和 第二个代码产生了一个空指针异常,该怎么做才能使下一个等效? 问题答案: 我可以看到,如果players某个自定义java.lang.Iterable的get()实现的实现被破坏,或者至少以一种异常的方式(与的行为不同),就会发生这种情况。 除此之外,我唯一能想到的就是您未在代码中向我们展示的某些内容导致了某些错误。 如果执行此操作会怎样?

  • 我如何用RxJava方法实现上面的场景?我希望利用某种现有的运算符,以声明性更强的方式组合它们,最重要的是,避免同步、锁和原子的开销。

  • 我在项目中使用drools 6.3.0。我有大约3000条规则,分为两类。比如,类别1有1500条规则,类别2有1500条规则。有2万份订单具有不同的数据。每个订单都有一组不同的属性。现在,为每个请求创建kiesession需要时间,而且速度非常慢。因此,计划使用相同的kiesession执行所有订单,订单将使用多线程处理。 以下是我目前的做法。 这就是我创建kiesession的方式,我想将此k

  • 我正在使用调度1到35个警报(取决于用户输入)。当用户请求调度新的警报时,我需要取消当前的警报,因此我使用相同的requestCode创建所有警报,该requestCode在变量中定义。 在这里,如果用户选中了(这是一个复选框),它将安排一个闹钟在每周日的和运行。您可以看到,以这种方式创建的每个警报都有相同的requestCode,但有时会对每个警报进行额外更改。 但是,在我的测试中,当警报响起并

  • 当我测试一个控制器时,我发现下面的代码可以正常工作。但我不明白为什么模型在映射后返回后包含“PasspProperty”属性。PasspProperty类仅使用验证约束进行注释。在控制器中,它只在方法中使用@Valid annotation进行注释,如下面的代码所示。 我在控制器中有以下映射: 获取: 帖子: 我添加了以下测试和输出。如您所见,返回的ModelAndView包含未添加到@PostM