1

我已经编写了一个警报系统,它与信息所在的服务器同步。

有时,在服务器上的更新中,一些警报会被删除。现在,它已从数据库 db4o 中很好地删除,但我无法取消已编程的pendingIntents。

现在,我有以下代码:

PendingIntent pendingIntent;
public class xxx{

public void updateObjects(){

alarmManager.cancel(pendingIntent);//delete all alarms
(...)
for(...){
    //Update each object ofdb4o with the new object value's.
    (...)
    doIntents(context,mil,obj);
    }
            (...)
    }

public void doIntents(Context context, long mil, ClassObjects obj){
(...)
pendingIntent = PendingIntent.getBroadcast(context, obj.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
(...)
}
}

任何人都可以帮我取消那些我已经不需要的未决意图吗?

谢谢!!!

4

1 回答 1

2

要取消 PendingIntent,您必须通过与ID您在设定时间内通过的相同。

            PendingIntent pendingIntent = PendingIntent.getBroadcast(context, obj.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
            AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
            alarmManager.cancel(pendingIntent);
于 2012-09-04T05:26:39.700 回答