Android 使用不同上下文注册或取消同一警报是否会产生意外后果?

Android 使用不同上下文注册或取消同一警报是否会产生意外后果?,android,android-intent,Android,Android Intent,我有这个方法来注册/取消我从两个不同的活动调用的警报-因此每次传入的上下文都是不同的 我设计它是为了让Uri中的alertId是报警的唯一标识符——所有其他参数类、类别都是相同的 但是,有时ActivityA可能会通过在挂起的意图中使用其contextA来注册alertId=1的报警。ActivityB可以通过使用其contextB再次注册警报来更新警报ID=1。与取消警报类似 相同的警报是否会更新 因此,我想知道使用相同的alertId注册报警时,使用不同的上下文是否会产生副作用。有人知道这件

我有这个方法来注册/取消我从两个不同的活动调用的警报-因此每次传入的上下文都是不同的

我设计它是为了让Uri中的alertId是报警的唯一标识符——所有其他参数类、类别都是相同的

但是,有时ActivityA可能会通过在挂起的意图中使用其contextA来注册alertId=1的报警。ActivityB可以通过使用其contextB再次注册警报来更新警报ID=1。与取消警报类似

相同的警报是否会更新

因此,我想知道使用相同的alertId注册报警时,使用不同的上下文是否会产生副作用。有人知道这件事吗

static void registerAlarm(Context context, Alert alert, Date alarmTime) {
    // Get the AlarmManager Service
    AlarmManager mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    Intent mNotificationReceiverIntent;
    PendingIntent mNotificationReceiverPendingIntent;
    // Create PendingIntent to start the AlarmNotificationReceiver
    mNotificationReceiverIntent = new Intent(context, NotifyActivity.class);
    mNotificationReceiverIntent.setAction(Intent.ACTION_SENDTO);
    // workaround from mazur - android bug database
    Bundle hackbundle = new Bundle();
    hackbundle.putParcelable(Alert.ALERT, alert);
    mNotificationReceiverIntent.putExtra(Alert.ALERT, hackbundle);
    mNotificationReceiverPendingIntent = PendingIntent.getBroadcast(context, 0,
            mNotificationReceiverIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    mNotificationReceiverIntent.setData(AlertsDbHelper.getUriForAlert(alert.alertId));
    mAlarmManager.set(AlarmManager.RTC_WAKEUP, alarmTime.getTime() + JITTER,
            mNotificationReceiverPendingIntent);
    Log.i(TAG, "registerAlarm() Alarm Set for alert id:" + alert.alertId + " alarm Time "
            + alarmTime);

    Toast.makeText(context,
            "Alarm Set for alert id:" + alert.alertId + " alarm Time " + alarmTime,
            Toast.LENGTH_LONG).show();
}

根据这一点,使用不同的上下文并不重要,这不会影响将PendingEvents识别为匹配。我已经在自己的应用程序中确认了这一点,我使用一个活动作为上下文设置了一个警报,并使用该活动的上下文从另一个活动中取消了警报,并且成功取消了警报,这意味着不同的上下文对识别正确的警报没有影响。

相信你的话-没有测试它