Android 自动将请求代码分配给PendingEvent.getBroadcast(使用AlarmManager)

Android 自动将请求代码分配给PendingEvent.getBroadcast(使用AlarmManager),android,android-intent,scheduled-tasks,alarmmanager,android-pendingintent,Android,Android Intent,Scheduled Tasks,Alarmmanager,Android Pendingintent,我本质上是在我的android应用程序中为另一个应用程序提供一个接口。客户端请求了一个系统,在该系统中,他既可以计划在特定时间显示新的本地通知,也可以取消所有本地计划通知。在AlarmManager中使用PendingEvent对象时,是否有一种方法可以自动将请求代码(/ID)分配给(实际上是无限的)PendingEvent对象 PendingIntent pendingIntent = PendingIntent.getBroadcast(this, requestCode, someNoti

我本质上是在我的android应用程序中为另一个应用程序提供一个接口。客户端请求了一个系统,在该系统中,他既可以计划在特定时间显示新的本地通知,也可以取消所有本地计划通知。在AlarmManager中使用PendingEvent对象时,是否有一种方法可以自动将请求代码(/ID)分配给(实际上是无限的)PendingEvent对象

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, requestCode, someNotificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
...
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureTimeInMillis, pendingIntent);
我还希望能够取消所有这些挂起的意图,而不必跟踪请求代码:

for(int requestCode : somehowGetAllUsedRequestCodes){
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, requestCode, someNotificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    pendingIntent.cancel();
    alarmManager.cancel(pendingIntent);
}

在不手动跟踪请求代码的情况下,这是可能的吗?

您需要跟踪数据库中的请求代码或其他内容,以便以后能够取消它们。如果还将值存储在数据库中,则可以确保id是唯一的。

您需要跟踪数据库中的请求代码或其他内容,以便以后能够取消它们。如果将值也存储在数据库中,则可以确保id是唯一的。

很好。我只是想知道是否有内部跟踪。谢谢我最终使用了SharedReferences,这已经足够好了。我只是想知道是否有内部跟踪。谢谢我最终使用了SharedReferences