簡體   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