假设我在2 app(App A& App B)的清单中有以下接收器:
<receiver android:enabled="true" android:name="com.MyReceiver">
<intent-filter>
<action android:name="com.COMMON_ACTION" />
</intent-filter>
</receiver>
在每个应用中,我想创建PendingIntent
(如果不存在),并使用AlarmManager
进行不精确的重复设置。要检查是否存在,我执行以下代码:
boolean alarmExists = (PendingIntent.getBroadcast(mContext,
DEFAULT_PENDING_INTENT_ID, intent,
PendingIntent.FLAG_NO_CREATE) != null);
这是否应该在App A中返回false,即使App B已在同一设备上创建了待处理的意图? 是否有理由推迟两个应用中的接收器(通过对每个应用使用不同的操作)?
答案 0 :(得分:1)
每个应用程序都有自己的PendingIntent
个。这些不在不同的应用程序之间共享。
如果应用程序A使用ACTION =“com.COMMON_ACTION”创建了PendingIntent
,并且应用程序B执行了:
Intent intent = new Intent("com.COMMON_ACTION");
boolean alarmExists = (PendingIntent.getBroadcast(mContext,
DEFAULT_PENDING_INTENT_ID, intent,
PendingIntent.FLAG_NO_CREATE) != null);
alarmExists
将为false
。