Android 向广播接收器发送新意图时,会给出先前意图的额外值

Android 向广播接收器发送新意图时,会给出先前意图的额外值,android,broadcastreceiver,android-intent,alarmmanager,Android,Broadcastreceiver,Android Intent,Alarmmanager,我正在广播一个意图,该意图将由广播接收器接收,因为应用程序仍在运行,报警服务会触发新的意图,但接收器显示以前的意图值。根据文档,广播接收器在返回onReceive()后不再处于活动状态,因此接收器应该显示报警服务触发的下一个意图值,但它没有发生,任何人都可以告诉正确的方法 这是从活动到广播的目的: Intent intent = new Intent(SCH_ALARM_ACTION); intent.setClass(getBaseContext(), SchAlarmRecieve

我正在广播一个意图,该意图将由广播接收器接收,因为应用程序仍在运行,报警服务会触发新的意图,但接收器显示以前的意图值。根据文档,广播接收器在返回onReceive()后不再处于活动状态,因此接收器应该显示报警服务触发的下一个意图值,但它没有发生,任何人都可以告诉正确的方法

这是从活动到广播的目的:

 Intent intent = new Intent(SCH_ALARM_ACTION);
    intent.setClass(getBaseContext(), SchAlarmReciever.class);
    intent.putExtra("id", maxId);
    PendingIntent pi = PendingIntent.getBroadcast(getBaseContext(),
                0,
                intent,
                0);
   alarmManager.set(AlarmManager.RTC, gc.getTimeInMillis(), pi);
这是broadreceiver:

@Override
    public void onReceive(Context context, Intent data) 
                {
        // TODO Auto-generated method stub

        if(data.getAction().equals(SchedulerActivity.SCH_ALARM_ACTION)){

        int id = data.getIntExtra("id",0);
        Toast.makeText(context, "in receiver "+String.valueOf(id), Toast.LENGTH_LONG).show();
                }

在这里,toast显示由alarmservice第一次广播发送的id,即使alarmservice触发了第二次意图(第二次警报熄灭)

得到答案,在设置alarmservice的挂起意图时,必须将标志PendingEvent.flag\u CANCEL\u设置为当前状态…

我正在做类似的事情!!!