[英]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.