Evitar que el "proceso de Android" sea un error "incorrecto"
El proceso es un error malo no parece estar muy bien documentado, y sólo he sido capaz de encontrar soluciones. En su lugar estoy interesado en la causa de este error y cómo evitar que suceda, y no cómo manejar manualmente a través de reiniciar, relanzar la aplicación, etc
Mi aplicación particular utiliza un AlarmManager para lanzar un IntentService que se ejecuta para ~ 10s cada ~ 30s. Esto se llama en la creación de la aplicación:
- Cómo recopilar información de IntentService y actualizar la interfaz de usuario de Android
- Android: ¿Cómo obtener el contexto de la actividad de llamadas en un IntentService?
- Servicios Roboeléctricos y de Intención
- ¿Puede un IntentService ejecutarse indefinidamente?
- ¿El enfoque de diseño de la aplicación de cliente restante en google io 2010 sigue actualizado?
Intent serviceIntent = new Intent(appContext, MyService.class); serviceIntent.putExtra("service_extra", extra); launchService = PendingIntent.getService( appContext, LAUNCH_SERVICE_REQUEST_CODE, scanIntent, PendingIntent.FLAG_UPDATE_CURRENT ); alarmManager.setInexactRepeating( AlarmManager.RTC, System.currentTimeMillis() + interval, interval, launchService );
Esto funciona como se esperaba la mayor parte del tiempo. Sin embargo, muy ocasionalmente el servicio no lanzará por un período indefinido, a veces horas a la vez. El siguiente error se ve cada ~ 30s, así que sé que mis alarmas están intentando lanzar el IntentService según lo programado, pero el intento falla con un proceso es error incorrecto.
Unable to launch app com.example.android/10024 for service Intent { cmp=com.example.android/.MyService (has extras) }: process is bad
Esto se soluciona simplemente reabriendo la aplicación. ¡Pero necesito saber cómo prevenirlo! El propósito de este servicio es ejecutarse en segundo plano mientras las actividades se detienen o se destruyen, por lo que debe evitar este error sin ninguna interacción del usuario o solución.
- Capturar IntentService Intents antes onHandleIntent
- Reschedule IntentService con AlarmManager - se ignora la información adicional intencional
- IntentService responde a muertos ResultReceiver
- ¿Hay un límite al tamaño de la cola en un IntentService?
- Android - Iniciar el servicio en el arranque
- ¿Está bien bloquear el subproceso de la interfaz de usuario al mostrar un diálogo de alerta?
- Cómo obtener el contexto en un servicio de intención
- Cómo crear tostadas de IntentService? Se queda atascado en la pantalla
- ¿Por qué Android activa una sincronización de cuenta de Google cada vez que agrego o elimino una cuenta de un tipo personalizado?
- Aplicación a la llamada de voz de aplicación como Viber & Line en android