las notificaciones de Android no aparecen en su momento

Hola chicos, estoy trabajando en la aplicación de Android, estoy tratando de crear una notificación para una hora específica como (03 - agosto -2012 a las 5:00 pm), así que usé el calendario para configurar la hora y luego uso calendar.getTimeInMillis i obtengo la hora de la notificación, pero desafortunadamente cuando ejecuto mi aplicación en el emulador una vez que la aplicación comienza, la notificación aparece sin importar la hora específica, es decir, no son las 4:00 pm, la notificación aparece en la parte superior y la hora marcada con 5: 00pm, aquí está mi código de notificación:

String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);

int icon = R.drawable.ieee;
CharSequence tickerText = "Hello";

//   long when = System.currentTimeMillis();

//setting custom time 
Calendar calendar = Calendar.getInstance();
calendar.set(calendar.DAY_OF_MONTH,03);
calendar.set(Calendar.HOUR_OF_DAY,17);
calendar.set(Calendar.MINUTE,26);
calendar.set(Calendar.SECOND, 00);
long when = calendar.getTimeInMillis();        // notification time

Notification notification=new Notification (icon, tickerText, when);

Context context = getApplicationContext();
CharSequence contentTitle = "My notification";
CharSequence contentText = "Hello World!";
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE;
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
mNotificationManager.notify(1, notification);

ahora todo está funcionando, pero hay un pequeño problema, por ejemplo, si la fecha y la hora ahora son 9/9/2012, 9:00 a.m., y configuré la alarma para mañana a las 10 a.m., okey funcionará, pero cuando Abro la aplicación pasado mañana, lo primero que hará la aplicación es notificar la alarma anterior, lo intenté configurando las fechas de alarma anteriores y cuando abro la aplicación lo primero que hace es mostrar alarmas antiguas, así que cualquier idea acerca de resolver esto?

Respuesta 1

Porque no esperará cuando no se lo hayas dicho. No puede establecer la Calendarhora y luego esperar que el servicio de notificación espere.

En su lugar, debe usar un TimerTasko AlarmManagerpara esto para generar un evento en el momento que desee. Luego cree la notificación dentro de su implementación de cualquiera de los dos.

Respuesta: 2

Estoy seleccionando una nueva tecnología para mi equipo. Me gustaría usar Vaadin en algunas situaciones, pero me gustaría reducir la cantidad de tecnologías que mi equipo necesita asimilar. ¿Es técnicamente ...

Utilizo el siguiente código para crear un cuadro de diálogo de opción. ¿Cómo agregaría espacio entre los botones "Confirmar" y "Cancelar"? Quiero eliminar el signo de interrogación, pero no puedo centrar el texto cuando cambio el ...

Página ArrayList que se abre como página de resultados después de actualizar y guardar. Supongo que necesitaría actualizar de alguna manera con invalidate () para que refleje los cambios en la interfaz de usuario. ¿Es una buena manera de actualizar?

Estoy usando Kryo para deserializar una clase originalmente serializada en Spark. Kryo escribe todas sus primitivas en formato BigEndian, pero cuando trato de deserializar los valores en otra máquina, el valor es ...