Me preguntaba si es posible establecer la prioridad de IntentService
como se puede con un Thread
. Hasta ahora no he encontrado nada.Cómo establecer la prioridad de IntentService en Android
Respuesta
El HandlerThread
que usa IntentService
no está expuesto al SDK. Se establece en Process.THREAD_PRIORITY_DEFAULT
como prioridad.
Tenga en cuenta que IntentService
es 143 líneas de código, incluyendo espacios en blanco y comentarios, por lo que puede considerar clonarlo para tener uno con la prioridad que busca.
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 fue cambiado de: "Process.THREAD_PRIORITY_DEFAULT", que es cero (0) a "Process.THREAD_PRIORITY_BACKGROUND", que es de diez (10) y el resultado fue visible.
Está cambiando la prioridad del subproceso que crea IntentService, no la prioridad del subproceso donde vivió el controlador. Vea la respuesta aceptada para más información. – espinchi
Puede establecer Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)
en el método onHandleIntent()
de su servicio de intención.
La solución de CommonsWare también funciona. Este es más simple, sin embargo.
Solo para dejarlo en claro - de manera predeterminada IntentService
la prioridad es por defecto- Process.THREAD_PRIORITY_DEFAULT
porque usa HandlerThread
Internamente. Puede usar Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)
en OnHandleIntent(), o lo que CommonsWare sugirió en la respuesta.
personas han planteado esto como bug. y también está disponible patch para esto.
- 1. Servicio con cola de prioridad en Android
- 2. PHP mail() - ¿Cómo establecer la prioridad?
- 3. Múltiples instancias de IntentService en Android
- 4. cómo probar JUnit IntentService
- 5. jQuery - establecer la prioridad del controlador Ajax
- 6. ¿Se puede establecer la prioridad de BroadcastReceiver programáticamente?
- 7. Android Prioridad de diseño
- 8. cambiar la prioridad del proceso en android
- 9. Cómo detener un IntentService?
- 10. IntentService: ¿Cómo poner en cola correctamente?
- 11. Comportamiento inesperado de IntentService
- 12. ¿Cómo establecer el enfoque lógico sin dar prioridad al teclado?
- 13. Delayed_Job, Cómo establecer una prioridad para un método user_mailer.rb
- 14. Linux & C: ¿Cómo establecer la prioridad de lectura de archivos en el programa multiproceso?
- 15. Cambiar la prioridad en una cola de prioridad personalizada
- 16. Ejecutores de Java: ¿cómo puedo establecer la prioridad de la tarea?
- 17. StartForeground para IntentService
- 18. Forma correcta de detener IntentService
- 19. Implementación de IntentService utilizando LinkedBlockingQueue?
- 20. ¿Puedo establecer la prioridad de un solo subproceso por encima de 15 para un proceso de prioridad normal?
- 21. Cómo aumentar la prioridad de subprocesos en pthreads?
- 22. Cómo establecer la sombra del botón de Android en lugar de establecer la sombra de texto
- 23. ¿Cómo obtener resultados de un IntentService en una actividad?
- 24. ¿Cómo puedo cambiar la prioridad de un mensaje en MSMQ?
- 25. Cómo establecer la pantalla completa de XML en Android
- 26. ¿Cómo puedo establecer dinámicamente la posición de vista en Android?
- 27. ¿Cómo establecer la altura máxima de un diseño en android?
- 28. Cómo establecer la columna de tabla en android
- 29. Cómo establecer el retraso en la función onClick de Android
- 30. ¿Cómo cambio la prioridad de un proceso?
Gracias Mark. Eso es lo que terminé haciendo. – smith324