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

Android-pendingintent.flag_cancel_current-它真的取消了alarmManager以前的挂起意图吗?

艾浩穰
2023-03-14
 public void runAlarm(){
   Intent intent = new Intent(context, MyReceiver.class);
          intent.setAction(ACTION_TIMEOUT);
          PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

          setTimeOutAlarm(TIMEOUT_MINUTES,alarmIntent);
          AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
                      alarmMgr.setExact(AlarmManager.RTC,
                              Calendar.getInstance().getTimeInMillis() + 3*60*1000, alarmIntent);

}
adb shell dumpsys alarm | grep com.your.package

共有1个答案

权烨磊
2023-03-14

我相信你不需要取消旧的闹钟…但只要更新就行了。

我认为您可以使用:pendingintent.flag_update_current

请做些测试,如果能用的话让我知道。

 类似资料:
  • 我想取消定义服务的AlarmManager,在此服务中可以启动新的AlarmManager或取消以前定义的报警。我知道alarmManager里的params Pendingtent。取消(挂起内容),必须相同。与filterEquals(Intent other)相比,它仍然不起作用。取消失败。这是我的密码 GetRoundSilence Service和GerRoundNormalServic

  • 简介 Twisted是一个正在进展的项目,它的开发者会定期添加新的特性并且扩展旧的特性. 随着Twisted 10.1.0发布,开发者向 Deferred 类添加了一个新的特性—— cancellation ——这正是我们今天要研究的. 异步编程将请求和响应解耦了,如此又带来一个新的可能性:在请求结果和返回结果之间,你可能决定不再需要这个结果了.考虑一下 第十四节 中的诗歌代理服务器.下面展示代理

  • 这是设置u和删除通知的代码。如果你需要更多的细节,请告诉我。堆栈溢出的唯一解决方案是关于相同的挂起意图。我已经尝试过这个解决方案,但没有成功。

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

  • 我在通知和等待意向方面遇到了很大困难。我正在尝试打开聊天活动,其中包含发送消息的相应用户详细信息。这就是为什么我在Firebase函数中传递了发送消息的用户id。我在FCM中获得了正确的日志,但当我收到聊天通知并打开它时,它会打开活动,而没有任何用户名和消息。它将使用默认值打开活动的新实例。 消息负载: 我的清单如下: 我不知道我是否添加了一些不同的功能,比如LifeCycleEvent List

  • 在我的代码中,我创建了一个警报,如下所示: 要取消警报,我执行以下操作: 移除任何具有匹配意图的警报。任何类型的警报,其意图与此警报匹配(由filterEquals(Intent)定义),都将被取消。 我不太确定“匹配意图”的定义是什么。如果我用上面的代码创建多个警报,然后按照显示的方式执行取消,它会取消我创建的所有警报吗?