在特定时间到来时执行某些操作

时间:2017-08-04 14:54:26

标签: java android events time background

我正在构建Android管理器应用。 我有一个Event类有一个开始时间,我想在这个时候触发一些动作。那么,我怎样才能不断地将开始时间当前时间进行比较,以了解它何时到来? 谢谢!

2 个答案:

答案 0 :(得分:1)

您可以安排任务在scheduledStartTime上触发,而不是根据scheduleStartTime不断检查当前时间。

您可以使用JobScheduler或AlarmManager https://developer.android.com/reference/android/app/job/JobInfo.Builder.html

https://code.tutsplus.com/tutorials/using-the-jobscheduler-api-on-android-lollipop--cms-23562

您可以通过指定开始时间和当前时间之间的时差(以毫秒为单位)来设置何时触发任务。

builder.setPeriodic(5000);

或者您也可以使用闹钟管理器

https://developer.android.com/training/scheduling/alarms.html

alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, alarmIntent);

希望这个帮助

答案 1 :(得分:0)

您可以使用以下解决方案之一:

  • 有时间和计时器勾选,您可以将您的开始时间与当前时间进行比较,并在需要时触发您的行动。
  • 或者,您可以使用ScheduledExecutorService根据当前时间和事件的开始时间来计划要在未来存档x秒的任务

当您使用Android时,我建议您将此作为服务的一部分。

希望这会有所帮助。