繁体   English   中英

每月设置警报Android

[英]Setting alarm on monthly basis android

我正在开发一个用于每天,每周,每月设置警报的android应用。 前两个可以通过将给定日期和时间转换为毫秒来正常工作。 但是,当我每月尝试执行相同操作时,它将无法正常工作。 日期格式完全不同。

我将其设置如下

Alarmtimefor30具有给定的日期(以毫秒为单位)。

  am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTimefor30, 30*1440*60000 , pi);

我将intervalMillis设置为30 * 1440 * 60000,结果为2592000000,即30天(以毫秒为单位)。 当我尝试打印30 * 1440 * 60000时,结果为1702967296。我不确定这可能是问题所在。

还有另一种设置每月警报的方法(在每月的特定日期和时间触发)吗?

请帮忙!谢谢!

默认情况下,Java中的整数文字将是int类型,它是一个32位数字。 当你乘的intint的结果也是int ,所以你的结果被截断。 显然, setRepeating的参数很long ,但这并不意味着编译器会为您解决此问题-您的乘法仍将被截断。

解决方案是显式强制这些文字为long类型,这是一个64位数字:

am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTimefor30, 30L*1440L*60000L , pi);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM