¿Alguien puede explicar por qué alguien debería usar la función Android Looper para crear un "hilo de interconexión" en lugar de hacer un hilo normal que extraiga tareas de un BlockingQueue? En la superficie, parece que hay dos formas de hacer lo mismo.Android Looper vs BlockingQueue?
9
A
Respuesta
4
BlockingQueue le permite tener múltiples consumidores y productores, mientras que el mecanismo Looper le permite tener múltiples productores pero solo un consumidor.
De modo que en el hilo Looper solo ejecuta una tarea (ejecutable) a la vez. El mecanismo de looper fue creado para que pueda ejecutar fácilmente ejecutables (tareas encapsuladas como mensajes) en el subproceso de la interfaz de usuario (que se ejecuta como un único hilo, piense en él como un consumidor de subproceso único)
Looper/Handler también proporcionan funcionalidad para diferido la eliminación de tareas que BlockingQueue fuera de la caja no lo hace. De nuevo, esto es importante en el contexto de los juegos de herramientas de UI.
Cuestiones relacionadas
- 1. Android: ¿Salir del Looper?
- 2. Java NIO Pipe vs BlockingQueue
- 3. Go channel vs Java BlockingQueue
- 4. Android: solo se puede crear un Looper por cada thread
- 5. Re-dimensionable Java BlockingQueue
- 6. BlockingQueue - métodos de drainTo() bloqueados
- 7. ¿Necesito sincronización adicional cuando uso un BlockingQueue?
- 8. C++ Equivalente a BlockingQueue de Java
- 9. ¿Cómo mejorar la unidad de prueba del código Looper y Handler en Android?
- 10. J2ME VS Android VS iPhone VS Symbian VS Windows CE
- 11. Android: análisis DOM vs SAX vs XMLPullParser?
- 12. xCode vs Android SDK vs Adobe Flex
- 13. Android JSONObject vs. GSON
- 14. Android Activities vs Views
- 15. Android 2.1 vs 2.2
- 16. Android: RunOnUiThread vs AsyncTask
- 17. Android: AsyncTask vs Service
- 18. Android CursorLoader vs AsyncQueryHandler?
- 19. Android - Sockets vs Polling
- 20. Android: PhoneGap vs Webview
- 21. Aplicación Android vs Actividad
- 22. Android - Actividades vs Vistas
- 23. Android ActivityManager vs WindowManager
- 24. Singleton vs Intents (Android)
- 25. Android Asynctask vs Runnable vs timertask vs Servicio
- 26. Android: Nivel API VS. Android versión
- 27. "@android: drawable/ic_" vs "@ * android: drawable/ic_"
- 28. Cómo liberar inmediatamente los hilos que esperan en un BlockingQueue
- 29. Cómo personalizar el comportamiento de bloqueo de BlockingQueue
- 30. ¿Cómo se interrumpe una BlockingQueue que está bloqueando en take()?