我实际上是在我的Android应用程序中为另一个应用程序提供了一个接口。客户端请求了一个系统,在该系统中,他可以安排在特定时间显示新的本地通知,还可以取消所有本地预定通知。有没有一种方法可以自动将(几乎无限制的)requestCodes(/ ids)分配给PendingIntent对象,同时将它们与AlarmManager一起使用?
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);
我还希望能够在不跟踪requestCodes的情况下取消所有这些待处理的意图:
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);
}
如果不手动跟踪请求代码,是否可以实现这一点?
答案 0 :(得分:0)
您需要跟踪数据库中的请求代码或以后可以取消它们的任何代码。如果将值存储在数据库中,则可以确保id是唯一的。