[英]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位数字。 当你乘的int
由int
的结果也是int
,所以你的结果被截断。 显然, setRepeating
的参数很long
,但这并不意味着编译器会为您解决此问题-您的乘法仍将被截断。
解决方案是显式强制这些文字为long
类型,这是一个64位数字:
am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTimefor30, 30L*1440L*60000L , pi);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.