AlarmManager no funciona para una fecha específica
Frecuentes
Visto 751 veces
1
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!
1 Respuestas
1
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 android service calendar alarmmanager android-pendingintent or haz tu propia pregunta.
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. - Eugene van der Merwe
@EugenevanderMerwe Entonces, ¿encontró alguna solución? - Ahmed S. Durrani
Resulta que estaba almacenando junio como el mes 6. En realidad, debería almacenarse como 5, los meses se cuentan desde 0. - Eugene van der Merwe
@EugenevanderMerwe oh, debería intentarlo entonces. :) - Ahmed S. Durrani