我想制作一个应用程序,每隔一小时从8Am到10Pm发出通知 我能怎么做 这是每隔一小时后重复报警的代码
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
intent.putExtra(ONE_TIME, Boolean.FALSE);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
//After after 5 seconds
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 60 , pi);
答案 0 :(得分:2)
一种方法是将闹钟设置为每小时触发一次,并将唤醒时间与所需的开始和结束时间进行比较。
另一种方法是做同样的事情,但是在晚上10点停止每小时报警,而是在早上8点设置一个。然后回到每小时一次,直到晚上10点。泡沫,冲洗,重复。
您可以使用以下内容进行时间比较:
import android.text.format.Time;
...
private static final int START_HOUR = 10;
private static final int END_HOUR = 22;
...
Time now = new Time();
now.setToNow();
int hour = now.hour;
if (hour >= START_HOUR && hour <= END_HOUR)
// do something;
else
// do something else;
答案 1 :(得分:0)
好的,你可以用两种方式做。
1:为下一个小时设置闹钟,并在时间间隔(在你的情况下是上午8点到晚上10点)之间检查你想要执行的动作,所以换句话说,闹钟将每小时播放但是你的行动将在特定时间内执行。这是不太优选的方式,但这将起作用。
2.您可以创建一个警报管理器,每天调用一次,然后在该警报管理器下,您可以启动另一个警报管理器,该警报管理器仅在特定时间内启动。您应该为{{{ 1}}以便播放多个闹钟