cómo despertar mi servicio intención cada 5 minutos
Sé que esta pregunta se preguntó antes, pero no obtuve ninguna respuesta, quiero crear un servicio de intención que ejecutar un hilo todo el tiempo, pero cuando salgo de la aplicación de mi servicio se detiene, entonces el hilo se detuvo también. Necesito crear algo para despertar el servicio cada algunos minutos. o algo para evitar matar el servicio incluso cuando la aplicación es matada o cerrada.
así es como empiezo mi servicio
- Cómo escuchar una copia en Android
- Cómo enviar el archivo binario y el texto usando el mismo socket
- Añade más espacio entre los elementos de Android Spinner sin estilo personalizado?
- Android Spannablecontent con esquinas redondeadas
- Reconocimiento de rostro inestable con OpenCV
Intent intent= new Intent(Intent.ACTION_SYNC,null,this,IntentServ.class); startService(intent);
- Android Studio: opción de VM no reconocida 'MaxPermSize = 256m'
- HashMap con clave de matriz de bytes y valor de cadena - la función containsKey () no funciona
- Visualización de Android AudioTrack desde un ByteStream
- Swizzling método en Android con java
- ¿Cuál es la mejor manera de acercarse? Utilizar PJSIP o SIP Android API para crear una aplicación de llamada basada en SIP
- ¿Puedo detectar mediante programación si hay dispositivos Chromecast en la red WiFi actual?
- ¿Por qué mi actividad de Android permanece vacía después de adquirir permisos y agregar datos de lista a él?
- Obtener progreso en onStopTrackingTouch no onProgressChanged en seekbar
Para ello, puede utilizar el AlarmManager
que podría iniciar su servicio cada 1 hora. Por ejemplo :
AlarmManager mgr = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); Intent notificationIntent = new Intent(context, UpdateService.class); PendingIntent pendingIntent=PendingIntent.getService(context, requestCode, Intent.parseIntent(), 0); mgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), AlarmManager.INTERVAL_HOUR, pendingIntent);
AlarmManager
y PendingIntent
son lo que necesita en este caso. Siga el siguiente ejemplo:
AlarmManager am = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
/ * — Crear intención pendiente, que se ejecutará al despertar — * /
PendingIntent operation = getUpdatePolicyOperation(); am.set(AlarmManager.RTC, alarmTime, operation); // alarm time is millisecond time in milliseconds that the alarm should go off, using the appropriate clock (depending on the alarm type).
Usted puede leer más sobre el modo de alarma en AlarmManager
aquí o tomar un tutorial en aquí
Espero que haya ayudado.
Utilice el Service
normal con android.app.AlarmManager
.
No es necesario usar WakefulBroadcastReceiver
.