Cómo repetir la notificación diaria en el tiempo específico en androide a través del servicio de fondo
Hola estoy trabajando en la aplicación donde he establecido la notificación en el usuario introdujo fecha y hora a través de servicio de fondo. Ahora quiero establecer la notificación / alarma diariamente a las 6 pm para preguntar al usuario ¿quiere agregar otra entrada? ¿Cómo puedo conseguir esto? ¿Debo usar el mismo servicio de fondo o receptor de Broadcast? Por favor, dame mejor solución para eso y tutorial será una gran idea. Gracias por adelantado.
- Android: uso de la red en un servicio
- Depuración de fallos de servicio
- El punto de interrupción en servicio no funciona
- ¿Cuál es la forma correcta de detener un servicio que se está ejecutando como primer plano
- Android: mantener el servicio en ejecución cuando se mata la aplicación
- Android: Unidad de prueba de un servicio
- El servicio de Android solo se inicia en modo de depuración
- Inicio del servicio de fondo cuando se enciende Android
- Actualización de Textview en una actividad con servicio local
- OnServiceConnected nunca llamado después del método bindService
- En Android: ¿Cómo llamar a la función de la actividad de un servicio?
- Servicio de Android y tareas repetitivas que se ejecutan en subprocesos
- Ejecutar servicio incluso si la aplicación está cerrada (matado)
Primero configure el Administrador de alarmas como se indica a continuación
Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 18); calendar.set(Calendar.MINUTE, 30); calendar.set(Calendar.SECOND, 0); Intent intent1 = new Intent(MainActivity.this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0,intent1, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager am = (AlarmManager) MainActivity.this.getSystemService(MainActivity.this.ALARM_SERVICE); am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
Crear una clase de receptor de difusión "AlarmReceiver" en este aumento de las notificaciones cuando onReceive
public class AlarmReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub long when = System.currentTimeMillis(); NotificationManager notificationManager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); Intent notificationIntent = new Intent(context, EVentsPerform.class); notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder( context).setSmallIcon(R.drawable.applogo) .setContentTitle("Alarm Fired") .setContentText("Events To be PErformed").setSound(alarmSound) .setAutoCancel(true).setWhen(when) .setContentIntent(pendingIntent) .setVibrate(new long[]{1000, 1000, 1000, 1000, 1000}); notificationManager.notify(MID, mNotifyBuilder.build()); MID++; } }
No se requieren permisos especiales para generar eventos a través del administrador de alarmas.
- Android: Cerrar ventana de diálogo al tocar
- Samsung Galaxy / Holoeverywhere – El recurso no es un ColorStateList (color o ruta)