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

android如何比较待定意图

拓拔谭三
2023-03-14

悬而未决的文件。FLAG\u NO\u创建读取:

指示如果所描述的PendingContent不存在,则只返回null而不是创建它的标志。

我的问题是:什么标准用于比较悬而未决的内容?

我猜在引擎盖下,这面国旗用的是悬挂式帐篷。等于,但我不确定该函数使用的是什么标准。它是否使用动作、请求代码、类别、额外功能(我猜不是)等。?

背景:

如果我的闹钟尚未设置,我想以挂起的意图启动闹钟。具体来说,我正在遵循这个答案。

Intent i = new Intent(applicationContext, MyService.class);
i.setAction("myAction");
PendingIntent pi = PendingIntent.getService(applicationContext, /*requestCode*/0, i, PendingIntent.FLAG_NO_CREATE);
if (pi != null) {
  AlarmManager alarmMgr = (AlarmManager)applicationContext.getSystemService(Context.AlarmService);
  alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, AlarmManager.INTERVAL_HOUR, AlarmManager.INTERVAL_HOUR, pi);
}

共有2个答案

晁国发
2023-03-14

我猜在引擎盖下,这面国旗用的是悬挂式帐篷。等于,但我不确定该函数使用的是什么标准。它是否使用动作、请求代码、类别、额外功能(我猜不是)等。?

实际上提示在类描述中:

Intent的描述和使用它执行的目标操作。此类的实例是使用

getactive(android.content.Context, int,android.content.Intent, int), get活动(android.content.Context, int,android.content.Intent[], int), getBroadcast(android.content.Context, int,android.content.Intent, int), getService(android.content.Context, int,android.content.Intent, int);

返回的对象可以交给其他应用程序,以便它们可以在以后执行您代表您描述的操作。

通过向另一个应用程序提供PendingIntent,您授予它执行您指定的操作的权利,就好像另一个应用程序是你自己一样(具有相同的权限和身份)。因此,您应该小心如何构建PendingIntent:例如,您提供的基本Intent几乎总是应该将组件名称显式设置为您自己的组件之一,以确保它最终发送到那里而不是其他任何地方。

PendingEvent本身只是对系统维护的令牌的引用,该令牌描述了用于检索它的原始数据。这意味着,即使其所属应用程序的进程被终止,PendingEvent本身仍然可以从其他已授予它的进程中使用。如果创建应用程序稍后重新检索相同类型的PendingEvent(相同的操作、相同的意图操作、数据、类别和组件以及相同的标志),它将接收表示相同标记的PendingEvent(如果仍然有效),并因此可以调用cancel()将其删除。

由于这种行为,为了检索PendingIntent,知道两个Intent何时被认为是相同的非常重要。人们常犯的一个错误是创建多个PendingIntent对象,其Intents仅在“额外”内容上有所不同,期望每次都得到不同的PendingIntent。这不会发生。用于匹配的Intent部分与Intent.filterEquals定义的相同。如果您使用两个Intent对象,它们与Intent.filterEquals等效,那么您将为它们获得相同的PendingIntent。

有两种典型的处理方式。

如果确实需要同时激活多个不同的PendingEvent对象(例如用作同时显示的两个通知),则需要确保它们有不同之处,以便将它们与不同的PendingEvents关联。这可能是Intent考虑的任何Intent属性。提供给getActivity(android.content.Context,int,android.content.Intent,int)、getActivities(android.content.Context,int,android.content.Intent[],int)、getBroadcast(android.content.Context,int,android.content.Intent,int)或getService(android.content.content,int,android.content.Intent,int)的filterEquals或不同请求代码整数。

如果您一次只需要一个活动的PendingEvent用于您将要使用的任何意图,那么您也可以使用flags FLAG\u CANCEL\u CURRENT或FLAG\u UPDATE\u CURRENT来取消或修改与您提供的意图相关联的任何当前PendingEvent。

发件人:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.0.0_r1/android/app/PendingIntent.java#PendingIntent

鄢承运
2023-03-14

要确定2个悬而未决的内容是否匹配,以下内容必须相等:

  • 创建PendingIntent时使用的Request estCode参数
  • 意图行动
  • 意图类别
  • 意图数据
  • 意图MIMETYPE
  • 意图
  • 意图COMPONENT

不考虑额外费用。

您可以在PendingEvent摘要文档和意图中阅读更多内容。filterEquals()。

 类似资料:
  • 问题内容: 两个日期比较,但时间比较不正确。这是我的密码 我该如何比较两次。在数据库中的日期和时间字段不同。请帮助我。 问题答案:

  • 我在android studio中使用firebase创建了一个聊天应用程序,我的所有活动都正常运行,除了日期显示, 我想设置日期在一次如果它是相同的否则显示新的日期如果它是不相同的上一个日期我试图设置但它显示一些错误 这里是错误 我获取当前日期 然后把它交给聊天室。java使用按钮。OnclickListner 这是我的适配器 有人知道怎么解决这个问题吗?

  • 问题内容: 由于我不是Android开发中的佼佼者,因此我尝试了一些对自己和朋友的手机都有效的方法,但是我从市场上收到一些报告,认为它可能不适用于所有设备,并且做错了比较。无论如何。该项目很简单,它从sql获取命令,然后在游戏中玩家尝试完成该命令。所以我有2个数组。我一开始就这样称呼它: 在游戏过程中,如果玩家单击按钮,它将更改combo的值,例如combo [7] =“ 1”; 当他单击最后一个

  • 我想制作一个字符串的词汇排序列表,所以我使用了基本的SortedSet 并意识到SortedSet是一个抽象类,我必须在其中实现comapartor方法。所以我去谷歌搜索,发现treeSet更好,我可以使用它预定义的比较器方法。 当我去java文档时,我意识到TreeSet扩展了AbstractSet而不是SortedSet。问题1-有人能解释一下第二行是如何工作的吗(就像我没有概括Set一样,我

  • 下面的代码片段适用于条件1,但不适用于条件2。

  • 我在寻找最好(也是最快)的方法,从移动麦克风录制短音频输入(如一个单词),然后将其与来自同一个人的长实时音频输入(如语音)进行比较,并查找单词的出现情况。 我尝试了很多方法,比如使用典型的SpeechRecognitor,但也有很多问题,比如实际上无法保证它能够足够快地给出结果或运行数分钟。 语音识别Android反应时间过长 Android上的长音频语音识别 我真的不需要识别那个人在说什么,只是