【发布时间】:2020-01-20 14:09:16
【问题描述】:
对于我的应用程序,我想在午夜发出警报,并在下一个午夜定期发出警报以重置一些变量。我尝试了警报管理器来实现这一点。警报是否有可能在第一次到达午夜时触发,而不仅仅是在接下来的午夜? 我的实际代码正在运行,但不是我想要实现的。我现在设置时间并将重复时间设置为 60 秒以进行测试。
在我的日志输出中,我得到例如:
- 20.01.2020_14:15:00 我要报警
- 20.01.2020_14:16:00:警报
- 20.01.2020_14:17:00:警报
那么,当警报到达设定时间时,是否可以在第一时间直接触发警报?或者有人有解决方法或任何提示或提示我可以如何实现这一目标?
我设置闹钟的功能
public void midnightAlarm() {
AlarmManager alarmMgr;
PendingIntent alarmIntent;
alarmMgr = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, MidnightAlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 15);
calendar.set(Calendar.MINUTE, 15);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
1000 * 60 , alarmIntent);
}
我的接收者类:
public class MidnightAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
writeToFile("ALARM");
//reset my Variables
}
}
【问题讨论】:
-
解决了,我现在使用单发 AlarmManager 并在触发后重置它
标签: android alarmmanager repeatingalarm