java - 机器人 : setting alarm on monthly basis

标签 java android alarmmanager

我正在开发一个 Android 应用程序,用于按月设置闹钟。我已经给出了下个月的以下代码。

private int GetTotalDays(int  monthRecvd1) {

    int totalDays=getDaysInMonthInPresentYear(taskMonth1);
    myDays=(totalDays-taskdate1)+taskdate1;
            }

                private int getDaysInMonthInPresentYear(int taskMonth1) 
                {
                    int days=0;
                    alarmCalendar.set(Calendar.HOUR, Hrs);  
                    alarmCalendar.set(Calendar.MINUTE, Mins);
                    alarmCalendar.set(Calendar.SECOND, 0);
                    alarmCalendar.set(Calendar.DATE, date);
                    alarmCalendar.set(Calendar.MONTH, Month);
                    alarmCalendar.set(Calendar.YEAR, year);
                    Long alarmTime = alarmCalendar.getTimeInMillis();
                    calendar.set(year, Month, date);
                    days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

                 }   

此代码仅适用于下个月。并且在下个月的第二个不工作。例如,如果我在四月设置闹钟,它会在五月设置,但不会在六月设置,依此类推。

谁能告诉我解决这个问题的方法是什么。

求助!谢谢!

最佳答案

使用 setRepeating(int type, long triggerAtMillis, long intervalMillis, PendingIntent operation) 方法而不仅仅是 AlarmManager.set()。您可以在文档中找到更多信息。

http://developer.android.com/reference/android/app/AlarmManager.html

编辑:应该是这样的

public void onClick(View arg0) {
Intent serviceIntent = new Intent(AndroidAlarmService.this, this);
pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, serviceIntent, 0);

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
long now = calendar.getTimeInMillis();
calendar.add(Calendar.DATE,calendar.getActualMaximum(Calendar.MONTH));
long repeat = calendar.getTimeInMillis();
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, now , repeat , pendingIntent);
}

关于java - 机器人 : setting alarm on monthly basis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17896478/

相关文章:

java - 数组中的奇怪问题

java - 在来自 Android 的 EWS 中将 UID 字符串转换为十六进制数组和 base64 字符串 ItemId

java - 如何将 int 转换为 String?

java - 如何在 Eclipse 中配置构建路径条目

android - Google 分析 "GET A CONFIGURATION FILE"不允许我选择我的帐户

android - 在没有运行应用程序的情况下在 Android 上启动警报

android - 时间选择器当前时间和时间选择器时间之间的差异 Android 闹钟

android - 如何使用 AlarmManager 和广播接收器发送文本?

java - java中动态多态性的实时示例是什么

android - 使用动画恢复 Android Recycler View ItemTouchHelper 中的滑动