AlarmManager no funciona para una fecha específica

He estado tratando de configurar AlarmManager para una fecha específica, ¡pero no funciona en absoluto! Cuando solo uso el tiempo, funciona bien. Aquí está el código:

SharedPreferences prefs = PreferenceManager
                    .getDefaultSharedPreferences(this);
            String getEventTime = prefs.getString("EventSTime", "");
            String getEventDate = prefs.getString("EventDate", "");
            Toast.makeText(this, getEventTime + " " + getEventDate,
                    Toast.LENGTH_LONG).show();
            String temp = "", temp2 = "";
            DateFormat dateformat = new SimpleDateFormat("HH:mm");
            DateFormat dateformatDate = new SimpleDateFormat("dd-MM-yyyy");
            try {
                temp = dateformat.format(dateformat.parse(getEventTime));
                temp2 = dateformatDate.format(dateformatDate
                        .parse(getEventDate));
                Toast.makeText(this, temp + " " + temp2, Toast.LENGTH_LONG)
                        .show();

            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            String getEventTimeSubStringHour = temp.substring(0, 2);
            String getEventTimeSubStringMinute = temp.substring(3, 5);
            String getEventDateSubStringDay = temp2.substring(0, 2);
            String getEventDateSubStringMonth = temp2.substring(3, 5);
            String getEventDateSubStringYear = temp2.substring(6, 10);
            Toast.makeText(
                    this,
                    getEventTimeSubStringHour + " "
                            + getEventTimeSubStringMinute + " "
                            + getEventDateSubStringDay + " "
                            + getEventDateSubStringMonth + " "
                            + getEventDateSubStringYear, Toast.LENGTH_LONG)
                    .show();
            hourOfDay = Integer.parseInt(getEventTimeSubStringHour);
            minute = Integer.parseInt(getEventTimeSubStringMinute);
            day = Integer.parseInt(getEventDateSubStringDay);
            month = Integer.parseInt(getEventDateSubStringMonth);
            year = Integer.parseInt(getEventDateSubStringYear);
            int second = 0;
//          calendar.setTimeInMillis(System.currentTimeMillis());
//          calendar.clear();
            //calendar.set(year, month, day);
            calendar.set(Calendar.YEAR, year);
            calendar.set(Calendar.MONTH, month);
            calendar.set(Calendar.DAY_OF_MONTH, day);
            calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
            calendar.set(Calendar.MINUTE, minute);
            calendar.set(Calendar.SECOND, second);


            Intent intent = new Intent(MessageService.this,
                    ServiceManager.class);
            PendingIntent callToServiceManager = PendingIntent.getService(
                    MessageService.this, 2, intent, 0);
            AlarmManager alarmToCallServiceManager = (AlarmManager) getSystemService(ALARM_SERVICE);
            alarmToCallServiceManager.set(AlarmManager.RTC_WAKEUP,
                    calendar.getTimeInMillis(), callToServiceManager);

Incluso después de usar calendar.set(year, month, day, hourOfDay, minute, second) nada esta pasando. ¡Por favor ayuda! ¡Gracias!

preguntado el 03 de mayo de 12 a las 20:05

Tengo exactamente el mismo problema y es muy molesto. Noto en mi sistema si elimino algo que tenga que ver con el AÑO y el MES que funciona. -

@EugenevanderMerwe Entonces, ¿encontró alguna solución? -

Resulta que estaba almacenando junio como el mes 6. En realidad, debería almacenarse como 5, los meses se cuentan desde 0. -

@EugenevanderMerwe oh, debería intentarlo entonces. :) -

1 Respuestas

Gracias a Eugen por guiarme. Resultó ser el problema del valor, de hecho, estaba almacenando junio como el séptimo mes en lugar del sexto. Estaba agregando 7 al mes y estaba creando un problema. Ahora lo he arreglado y está funcionando bien ahora.

Respondido el 23 de junio de 12 a las 18:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.