重复出现问题(AlarmManager)

and*_*nnn 1 android alarmmanager

我正在构建一个必须在一段时间后显示通知的应用程序,因为我使用了AlarmManager.要每15分钟发出一次通知,我们必须这样做:

mgr.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime(), 900000, pi);
Run Code Online (Sandbox Code Playgroud)

有一天我们86400000有价值.我的想法是每周也发出一个通知(乘以86400000与7)和每个月(乘以86400000与28).问题是月份不变,我有:

The literal 2419200000 of type int is out of range 
Run Code Online (Sandbox Code Playgroud)

使用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");
Run Code Online (Sandbox Code Playgroud)

MBy*_*ByD 5

它是可能的(因为setRepeating()只要参数接收),但是2419200000你应该写,2419200000L因为2419200000对于int来说太大了,并且任何整数常量都被视为int,所以你需要添加L以指示这个数字很长.