Cómo establecer la prioridad de IntentService en Android
Me preguntaba si es posible fijar la prioridad de un IntentService
como usted puede con un Thread
. Hasta ahora no he encontrado nada.
- Servicio reiniciado en la aplicación Cerrar - START_STICKY
- Ciclo de vida de BroadcastReceiver
- Detener o matar un servicio
- Servicio en android?
- ¿Estoy consiguiendo los pasos correctos para verificar la suscripción de Android de un usuario en la aplicación?
- Servicio Android + cuenta atrás = no funciona
- ((Botón)) dentro de un servicio no funciona
- ¿Necesito agregar un filtro de intenciones al iniciar un servicio?
- Servicio de Android en la biblioteca
- Cómo utilizar Android LocationManager y Listener
- Intento pendiente de obtener servicio
- Eliminar el botón flotante de WindowManager cuando se pulsa el botón de encendido
- ¿Abre la aplicación de Android enviando un mensaje de texto?
El HandlerThread
que IntentService
utiliza no está expuesto al SDK. Se establece en Process.THREAD_PRIORITY_DEFAULT
como una prioridad.
Tenga en cuenta que IntentService
es 143 líneas de código, incluyendo espacios en blanco y comentarios, por lo que podría considerar la posibilidad de clonación para tener uno con la prioridad que busca.
Puede establecer Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)
en el método onHandleIntent()
de su servicio de intenciones.
La solución de CommonsWare también funciona. Sin embargo, éste es más sencillo.
Sólo para dejarlo claro – por defecto IntentService
priority es default- Process.THREAD_PRIORITY_DEFAULT
porque utiliza HandlerThread
internamente. Puede usar Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)
en OnHandleIntent (), o lo que sea que el CommonsWare sugiere en la respuesta.
Algunas personas plantearon esto como un error . Y también hay parche disponible para esto.
Cambié la prioridad de IntentService usando: "android.os.Process.setThreadPriority (android.os.Process.THREAD_PRIORITY_BACKGROUND);" En el constructor de la clase IntentService.
En mi caso se cambió de: "Process.THREAD_PRIORITY_DEFAULT" que es cero (0) a "Process.THREAD_PRIORITY_BACKGROUND" que es diez (10) y el resultado era visible.
- Cómo desplazar una actividad verticalmente en Android
- Instalación del complemento de Android NDK en eclipse SDK