如何从早上8点到晚上10点重复报警android

时间:2014-04-24 05:01:14

标签: android

我想制作一个应用程序,每隔一小时从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);

2 个答案:

答案 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}}以便播放多个闹钟