我正在构建一个必须在一段时间后显示通知的应用程序,为此我使用了 AlarmManager。 要每 15 分钟收到一次通知,我们必须这样做:
mgr.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime(), 900000, pi);
一天的值是 86400000
。我的想法是每周(86400000 乘以 7)和每月(86400000 乘以 28)也发出通知。问题是月份不变,我有:
The literal 2419200000 of type int is out of range
AlarmManager 不能做长时间的通知吗?有解决办法吗? 谢谢。 编辑:
if (Integer.valueOf(choix_notif) == 0)
{
mgr.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime(), 86400000, pi);
Log.d("DAY_REPEATING","OK");
}
else if (Integer.valueOf(choix_notif) == 1) {
mgr.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime(), 604800000, pi);
Log.d("WEEK_REPEATING","OK");
}
else if (Integer.valueOf(choix_notif) == 2) {
mgr.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime(), 2419200000L, pi);
Log.d("MONTH_REPEATING","OK");
最佳答案
这是可能的(因为 setRepeating()
接收 long 作为参数),但是您应该写 2419200000L
而不是 2419200000
因为 2419200000 对于 int 来说太大了,而且任何整数常量被视为int
,所以您需要添加L
来表示这个数字是长的。
关于android - 重复问题(AlarmManager),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7078894/