gpt4 book ai didi

java - 安卓 : How to use same AlarmManager in loop?

转载 作者:行者123 更新时间:2023-12-01 19:53:48 24 4
gpt4 key购买 nike

我编写了以下报警方法。

 public void alarm(int time){
Intent intent = new Intent(MainActivity.this, Alarm.class);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0 , intent, 0);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+time*1000, pi);
}

这个方法非常有效。但是当我多次调用该方法时就会出现问题。就像,

alarm(10);
alarm(50);

这次它只调用 alarm(10); 但不调用 alarm(50);

任何人请帮忙解释为什么会出现这个问题!

最佳答案

您的 PendingIntent 两次调用您的方法时都具有相同的属性。当您第二次调用 PendingIntent.getBroadcast() 时,它将返回第一次创建的 PendingIntent

如果您希望警报触发两次,您需要执行以下操作:

public void alarm(int time, int requestCode){
Intent intent = new Intent(MainActivity.this, Alarm.class);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), requestCode , intent, 0);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+time*1000, pi);
}

然后这样调用它:

alarm(10, 0);
alarm(50, 1);

关于java - 安卓 : How to use same AlarmManager in loop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50346929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com