2

我有一个活动,这里有两个按钮:

  1. “选择闹钟时间”的按钮一。当我点击它时,TimePicker 会出现,我选择闹钟的时间。

  2. “设置警报”的按钮二。当我点击它时,警报设置。

我在做什么 :

在设置的闹钟时间我会打电话给BroadcastReceiver. 对于演示,我只打印我设置的警报时间和一个字符串Toast

什么是查询:

“如果我将闹钟时间设置为Current Time 4.00 PM并且我将闹钟时间设置为 6.00 PM。在这种情况下,Alarm 总是调用BroadcastReceiverand it's Work Fine

BUT

如果当前时间是下午 4 点,我将闹钟设置为下午 2 点,那么它会同时调用BroadCastReceiver,我不想要这个东西。”

.

对于 AlarmManager 我使用这个片段:

AlarmManager am = (AlarmManager) getSystemService(SetAlarm.ALARM_SERVICE);

Intent intent1 = new Intent(SetAlarm.this, BroadCast.class);

PendingIntent pendingIntent =  PendingIntent.getBroadcast(SetAlarm.this, 0,intent1,PendingIntent.FLAG_UPDATE_CURRENT);

am.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
4

1 回答 1

0
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, 14);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND,0);

if(calendar.getTimeInMillis()<System.currentTimeMillis())
    {
        calendar.add(Calendar.DATE, 1);
    }
am.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY, pendingIntent);

你可以做这样的事情。

于 2013-10-24T07:42:34.677 回答