El servicio androide deja de funcionar después de que la aplicación no esté en uso por un tiempo
Tengo un servicio para mi aplicación que funciona bien, pero cuando un usuario no está usando allí para el teléfono mientras 20 minutos el servicio simplemente no funciona más. Hay algo que supongo estar haciendo como salvar un estado o algo, estoy perdido en este punto. No veo por qué el servicio sigue funcionando, me veo en la aplicación de servicios de ejecución en mi teléfono y todavía dice su funcionamiento. ¿Alguna sugerencia?
- Detenga el servicio de Android cuando la aplicación se cierra con el administrador de tareas
- Cómo detener la repetición de servicios de alarma en Android?
- Android: Detener / Iniciar servicio dependiendo del estado WiFi?
- No se le permite enlazar con el servicio
- ¿Cómo implementar callbacks usando IntentService en Android?
- Android Open WebView en fondo de servicio y captura de pantalla
- ¿Cómo mostrar Toast de un Servicio después de que la actividad principal termine?
- Servicio Android Jelly Bean que recibe todos los eventos de toque
- Cómo ejecutar un servicio todos los días al mediodía, y en cada inicio
- ¿Cómo implementar mejor dos actividades que comparten un servicio (con conexión Bluetooth)?
- Definición de la política de SELinux para el servicio del sistema Android: cómo configurar?
- Cómo iniciar el servicio en android sin actividad
- Android: habilitar y servicios
Me enfrenté al mismo problema pocas veces atrás. Entonces comencé a usar el servicio de alarma de Android. Eso resolvió mi problema. Aquí hay un enlace de referencia http://android-er.blogspot.com/2010/10/simple-example-of-alarm-service-using.html
Si desea seguir corriendo en segundo plano (por ejemplo, descargar algo), necesita agarrar un wakelock (http://developer.android.com/reference/android/os/PowerManager.html)
También, mira lo siguiente si sucede a hacer descargas en el fondo: http://developer.android.com/reference/android/net/ConnectivityManager.html#getBackgroundDataSetting ()
El comportamiento de este Android de que Un Servicio tiene una vida máxima de 20 minutos. Después de 20 minutos, el sistema operativo Android lo matará automáticamente. Pero creo que hay una solución. No lo he probado todavía. La solución es: En su onStartCommand (), ponga este código al final de este método return START_STICKY;
Puede utilizar el receptor de difusión en lugar de utilizarlo como servicio. Y se puede llamar igual que Servicio con administrador de alarmas. Receptor:
public class CallListReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Call List receiver called", Toast.LENGTH_LONG) .show(); } }
Puede llamar continuamente usando:
public void startAlert(Context context) { Intent call_intent = new Intent(this, CallListReceiver.class); PendingIntent pendingCallIntent = PendingIntent.getBroadcast(context, 0, call_intent, 0); AlarmManager call_alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); call_alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), (7 * 1000), pendingCallIntent); }