android - Android 中的 Calendar.Month

标签 android alarmmanager android-calendar

我尝试设置一个闹钟以每 12 个月触发一次服务。

所以我尝试了以下方法:

Calendar calendar = Calendar.getInstance();
calendar.set(calendar.MONTH, calendar.get(Calendar.MONTH) + 12);
Log.e("calendar", "= " + Calendar.MONTH + " " + calendar.get(Calendar.MONTH) + 10);

long sdl = calendar.getTimeInMillis();
Intent myIntent = new Intent(mContext,
AlarmAlertBroadcastReciever.class);

PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager alarmManager = (AlarmManager) mContext
                .getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, sdl, pendingIntent);

上面不是每12个月触发一次,我试过每10个月触发一次?怎么办?

最佳答案

如果您希望每 12 个月触发一次,则向 Calendar 实例添加一年。像这样的 -

calendar.add(calendar.YEAR, 1);

此外,如果您真的想坚持增加月份,这就是解决方案 -

calendar.add(calendar.MONTH, 12);

注意 - 我使用的是 add() 而不是 set()

希望对您有所帮助。

关于android - Android 中的 Calendar.Month,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33404202/

相关文章:

java - 如何获得 Firebase 节点的随机子节点?

java listview改变内容

android - 如何在按钮单击时关闭 Activity ?

java - AlarmManager 在重新启动时重置

android - 计算从现在开始的某个时期的日期

java - 为什么 DAY_OF_WEEK 多加一天?

Android Studio 2错误:Configuration with name 'default' not found

java - 在日历中设置当天的时间会移至第二天

android - 使用 AlarmManager 每 20 秒运行一次 Android 服务不会在从应用程序列表中终止该应用程序时重新启动

android - 是否可以以编程方式添加提醒而不在 Android 日历中创建事件?