我在设置AlarmClock()而不是AlarmManager()的特定日期时遇到问题。我在互联网上的所有示例都显示使用AlarmManager()在特定日期开始活动。但我的应用程序有/需要一个自定义活动。我只需要在特定的日子注册系统警报,它会像通用的android系统警报一样响起。
Calendar c = Calendar.getInstance();
Intent alarmIntent = new Intent(AlarmClock.ACTION_SET_ALARM);
alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
alarmIntent.putExtra(AlarmClock.EXTRA_MESSAGE, "Polo!");
alarmIntent.putExtra(AlarmClock.EXTRA_HOUR, c.get(Calendar.HOUR_OF_DAY));
alarmIntent.putExtra(AlarmClock.EXTRA_MINUTES, c.get(Calendar.MINUTE) + 1);
context.startActivity(alarmIntent);
以上是我的代码。我试着用
alarmIntent.putExtra(AlarmClock.EXTRA_DAYS, c.get(Calendar.DAY_OF_MONTH));
但它只需要当天。
请帮我在特定日期使用AlarmClock()设置闹钟。
答案 0 :(得分:1)
来自文档:
EXTRA_DAYS(可选):重复闹钟的工作日。
实际上,AlarmClock.EXTRA_DAYS是一周中这个警报响起的天数,因此您无法设置警报的确切日期。用法示例:
ArrayList<Integer> days = new ArrayList<Integer>();
days.add(Calendar.SATURDAY);
alarmIntent.putExtra(AlarmClock.EXTRA_DAYS, days);
答案 1 :(得分:0)
调用Calendar.getInstance()
将返回使用当前日期初始化的Calendar
对象。您需要将Calendar
对象设置为所需的日期,然后访问其字段,例如:
c.set(Calendar.DAY_OF_MONTH, 30)
然后当你打电话
c.get(Calendar.DAY_OF_MONTH)
它返回30.否则,它返回当前日期。