我正在构建一个警报应用程序。我现在添加的功能之一是闹钟的音量。当用户设置闹钟时,他们可以使用SeekBar
选择闹钟的音量。因此,当闹钟响起时,它的音量应设置为用户设置的音量。要做到这一点,我需要知道已经调用了哪个特定的警报。我已经从数据库中识别出每个PendingIntent
的警报ID。我的问题是,我只是不知道如何在闹钟响起后再次检索此ID。
正如您所看到的,这就是我通过传递alarm.getID()
来识别每个PendingIntent的方式:
PendingIntent pendingAlarmIntent = PendingIntent.getBroadcast(
ChangeAlarmActivity.this, (int)alarm.getID(), alarmIntent, 0);
所以在我的活动中,当闹钟响起时我会调用
int id = pendingIntent.getID();
Alarm alarm = database.getAlarm(id);
int volume = alarm.getVolume();
因此,如何在警报打开后调用的Activity中获取PendingIntent的唯一标识符?换句话说,我如何知道正在设置哪个警报?
答案 0 :(得分:1)
首先,请原谅我的英语,这不是很好。 我认为你很可能已经找到了解决这个问题的方法,但我有同样的疑问,我无法轻易找到答案。经过多次研究,我找到了一条路。为了从警报中检索一个ID,可以在意图上添加一个ID:
// create intent
Intent intent = new Intent(context,MyClass.class);
// store id
intent.putExtra("id", yourId);
在此之后,使用此意图创建PendingIntent,用于设置警报。当警报触发时,方法onReceive(context, intent)
将收到用于创建PendingIntent的意图,因此可以在方法上检索id:
// retrieves id
long id = intent.getLongExtra("id", -1);
我希望有用!