gpt4 book ai didi

java - 如何设置指定日期相同ID的闹钟?

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:14 25 4
gpt4 key购买 nike

我有两个变量:

  • howManyDays - 闹钟应该工作多少天
  • cal - 开始日期
<小时/>

不幸的是,我的代码不起作用 - 警报不显示。你能告诉我我做错了什么吗?多个闹钟可以设置同一个ID来快速删除吗?如果您有任何疑问,请告诉我。

<小时/>
int howManyDays= Integer.parseInt(countDays.getText().toString());

Cursor c = myDb.getID_REMINDER();
c.moveToFirst();
int id = Integer.parseInt(c.getString(0));

Intent intx = new Intent(getApplicationContext(), NotificationReceiver.class);
intx.putExtra("Value", nameOfMedicine.getText().toString());

PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), id, intx, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

for(int i=0; i<=howManyDays; i++) {
Calendar cc = cal;
cc.add(cc.DATE, i);
alarmManager.set(AlarmManager.RTC_WAKEUP, cc.getTimeInMillis(), pendingIntent);
}

最佳答案

您无需设置多个闹钟,只需设置一个重复闹钟即可。为此,您必须提供以毫秒为单位的重复间隔,如下所示

Intent intx = new Intent(getApplicationContext(), NotificationReceiver.class);
intx.putExtra("Value", nameOfMedicine.getText().toString());
intent.putExtra("requestCode", id);

PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), id, intx, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);


long repeatingInterval = 24 * 60 * 60 * 1000; // 1 day

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
repeatingInterval, pendingIntent);

请记住,在 Android 中无法设置 howManyDays 的闹钟。一种可能的低处理解决方案是设置两个警报;第一个是重复闹钟,第二个是最后一天的固定闹钟。当第二个闹钟在 howManyDays 后触发时,它将取消第一个重复闹钟。

关于java - 如何设置指定日期相同ID的闹钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50099706/

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