2012-08-31 19 views
9

He referido muchos sitios, pero todavía no puedo crear la notificación (recordatorio o alarma) No sé exactamente cómo crear y trabajar con él. Su para notificar/recordar al usuario acerca de la tarea y también proporcionan consejos diarios para el usuario .. Me alegraré de tener su ayuda para hacerlo y cómo codificar también ...Cómo crear una notificación de recordatorio

Saludos :) Thanxs de tu ayuda por adelantado.

+0

desea una [Notificación] (http://developer.android.com/guide/topics/ui/notifiers/notifications.html) o una [Alarma] (http://developer.android.com/reference/ android/app/AlarmManager.html)? Sea específico – iTurki

+1

Mi [respuesta] (http://stackoverflow.com/a/12189105/996493) puede ayudarlo en su requerimiento. – Lucifer

+0

@iturki: quiero codificación para los dos .. – Rushabh

Respuesta

33

se necesitan dos cosas:

  • AlarmManager: para programar su notificación en una base regular (diaria, semanal, ..).
  • Servicio: para iniciar su notificación cuando el AlarmManager se apaga.

Aquí es un ejemplo básico:

En su actividad:

Intent myIntent = new Intent(this , NotifyService.class);  
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
PendingIntent pendingIntent = PendingIntent.getService(this, 0, myIntent, 0); 

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.SECOND, 0); 
calendar.set(Calendar.MINUTE, 0); 
calendar.set(Calendar.HOUR, 0); 
calendar.set(Calendar.AM_PM, Calendar.AM); 
calendar.add(Calendar.DAY_OF_MONTH, 1); 

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*60*24 , pendingIntent); 

Esto activará la alarma cada día a medianoche (12 am). Puede cambiar eso si lo desea.

Ahora, crear un servicio NotifyService y poner este código en su onCreate():

@Override 
public void onCreate() { 
    NotificationManager mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
    Notification notification = new Notification(R.drawable.notification_icon, "Notify Alarm strart", System.currentTimeMillis()); 
    Intent myIntent = new Intent(this , MyActivity.class);  
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); 
    notification.setLatestEventInfo(this, "Notify label", "Notify text", contentIntent); 
    mNM.notify(NOTIFICATION, notification); 
} 

Y este código mostrará la notificación cuando se recibe la alarma.

¡Buena suerte!

+0

¿Necesito una clase de servicio? – Behnam

+1

¿podría compartir amablemente un ejemplo? – Behnam

+0

pero si mi aplicación es "Cerrar a la fuerza", entonces el servicio no funciona !!!! – javadaskari

3

aquí hay un pequeño YouTube Video Tutorial sobre las notificaciones diarias. Puede encontrar el código fuente en la descripción.

Este video no está hecho por mí mismo. Pero creo que es una ayuda rápida. Aunque te recomiendo algunos cambios debido a que el Notification.Builder está en desuso:

1.

import android.support.v4.app.NotificationCompat; 

2.

// Change: Notification mNotify = new Notification.Builder(this) to 
Notification mNotify = new NotificationCompat.Builder(this) 

divertirse!

Cuestiones relacionadas