¿Está bien consultar el DownloadManager en el subproceso de interfaz de usuario?
El DownloadManager tiene un método query () . Mi pregunta es si está bien llamar a este método en el hilo de interfaz de usuario, o si sólo se debe llamar desde un hilo de fondo?
¿Puede llamarlo alguna vez causar una ANR?
- Android - Forzar ANR para fines de prueba
- La aplicación no responde después de reanudarla
- Desplome del fondo del GMS
- Guía general para el diagnóstico de ANR
- Obtener un diálogo ANR cuando abra los vínculos de WebView en las pestañas personalizadas de Chrome. ¿Cómo depurar esto?
- ANR keyDispatchingTimedOut error
- ANR (Fuerza cerrar / Esperar) al generar una lista lo suficientemente grande
- Cómo interpretar los informes de Android ANR
- ¿Cómo detecta la plataforma Android los problemas ANR?
- ¿Cómo analizar un archivo Android /data/anr/traces.txt?
- ANR Tiempo de envío excedido
- Cómo reproducir la aplicación no responde (ANR) de actividad y de BroadcastReceiver
Si uno mira el origen del método query()
:
public Cursor query(Query query) { Cursor underlyingCursor = query.runQuery(mResolver, UNDERLYING_COLUMNS, mBaseUri); if (underlyingCursor == null) { return null; } return new CursorTranslator(underlyingCursor, mBaseUri); }
… esto podría romper a la pregunta de si es seguro acceder a cursores en el hilo de la interfaz de usuario. Vea la respuesta excelente de Mark Murphy a esto. Extraer:
Así que consulta el DownloadManager en un hilo de fondo.