如何安排闹钟以便每次日期更改时广播意图?

发布于 2024-10-19 13:20:04 字数 374 浏览 4 评论 0原文

我想安排一个警报,当日期更改时发出意图。

我知道这可以完成这项工作

alarms.setRepeating(AlarmManager.RTC_WAKEUP,triggerAtTime, interval,alarmIntent);

,但令我困惑的是在triggerAtTime和间隔中放入什么。它说System.currentTimeMillis()时基。

我可能会在任何一天安装该应用程序,因此 TriggerAtTime 应为当天的午夜,并且从那时起间隔为 24 小时。

我怎样才能实现这一点。有人可以告诉我在 TriggerAtTime 和间隔中以所需的格式输入什么内容。

谢谢

I want to schedule an alarm which throws an intent when the date changes.

I know that this would do this the job

alarms.setRepeating(AlarmManager.RTC_WAKEUP,triggerAtTime, interval,alarmIntent);

But what is confusing me is what to put in the triggerAtTime and the interval.It says System.currentTimeMillis() timebase.

I might be installing the app on any day so the TriggerAtTime should be midnight of that day and the interval would be 24 hours from there on.

How can I acheive this.Can someone tell me what to put in TriggerAtTime and interval in the required format.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

遗弃M 2024-10-26 13:20:04

它们都是很长的类型,我认为你需要以毫秒为单位设置它们......

They both are of type long and I think you need to set them in milliseconds...

猫性小仙女 2024-10-26 13:20:04

对于triggerAtTime,这是闹钟第一次响的时间。

间隔参数是每次点击之间的时间,24小时,以毫秒为单位:24*60*60*1000

例如,如果你想在10秒后开始更新,你的代码应该是:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000),24*60*60*1000, alarmIntent);

如果你想设置第一次点击如果是午夜,您应该以毫秒为单位计算午夜和现在之间的时间。
我希望你能理解我糟糕的法语英语。

韧皮部

For the triggerAtTime, this is the time of the first hit of your alarm.

The interval param is the time betwen each hit, for you 24 hours, in milliseconds : 24*60*60*1000

For exemple if you want to start updating 10 seconds after, your code should be :

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000),24*60*60*1000, alarmIntent);

If you want to set the first hit to be at midnight, you should calculate the time betwen midnight and now in milliseconds.
I hope you understand my frenchy bad english.

Bast

墨落成白 2024-10-26 13:20:04

你可以这样尝试

Calendar calendar=Calendar.getInstance();

    calendar.add(Calendar.DATE, 1);
    calendar.set(Calendar.HOUR,0);
    calendar.set(Calendar.MINUTE,0);
    calendar.set(Calendar.SECOND,0);
    calendar.set(Calendar.MILLISECOND,0);

    mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), (24*60*60*1000), mPendingIntent);

You can try like this

Calendar calendar=Calendar.getInstance();

    calendar.add(Calendar.DATE, 1);
    calendar.set(Calendar.HOUR,0);
    calendar.set(Calendar.MINUTE,0);
    calendar.set(Calendar.SECOND,0);
    calendar.set(Calendar.MILLISECOND,0);

    mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), (24*60*60*1000), mPendingIntent);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文