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 に答える