我正在开发Android中的闹钟应用程序。该流程很简单,我只是创造了的PendingIntent,然后我打电话的AlarmManager很像下面setExact()方法。使用相同的请求代码保留两个pendingIntents
Intent myIntent = new Intent(context, BroadcastReceiver.class);
pendingIntent = PendingIntent.getBroadcast(context, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + difference, pendingIntent);
一些测试后,我意识到,与上面的代码,因为我设置requestCode的的PendingIntent的零我只能设定一个报警,如果我设置其他报警与requestCode集为0,那么它将覆盖前一个。有没有办法解决这个问题,而无需更改requestCode?我想也许这些标志可以帮助我,但我没有找到一个不会覆盖以前pendingIntent的标志。
我知道明显的解决方案是将0更改为另一个int,然后跟踪所有我的整数,选择一个未使用的整数。如果我刚刚开始项目,该解决方案将会很好,但是我已经在中间,并且使用预定义的请求代码Enums。这是很难改变这种机制,并跟踪个人的整数这就是为什么我问是否有一种方式,不会覆盖pendingIntent当一个新的登录相同requestCode。先谢谢你。
我在问是否存在能够区分它们的特定类型的标志 – Libathos