2011-10-26 11 views
7

He tomado el control de un proyecto de Android de un empleado anterior y me pregunto si hay una herramienta fácil de usar para crear un perfil de una aplicación de Android. Tengo un LinearLayout con un spinner ProgressBar dentro de él. Ahora estoy ejecutando una llamada de red en un hilo diferente mientras se muestra ese spinner. Utilizo una animación de traducción para mostrar todo el LinearLayout y cuando la llamada de red vuelve en el otro hilo, oculto el LinearLayout. Ahora esto funciona bien, pero veo que el spinner deja de girar mientras se muestra. Ahora parece que si interactúo con la pantalla, como cuando intento desplazarme, la ruleta continuará girando. Para un spinner ProgressBar estándar ¿necesito configurar algún comando en el spinner para seguir girando? Cualquier información sobre esto sería genial.¿Forma fácil de detectar dónde se está estancando el hilo de la interfaz de usuario en Android?

Gracias

Respuesta

10

Puede usar StrictMode para detectar llamadas costosas que se están realizando en el subproceso UI.

+0

Eso fue perfecto, me dio el número de línea de dónde estaban ocurriendo las interrupciones de la interfaz de usuario. – Bobbake4

+0

Tengo un caso de uso especial para esto: esto no funciona si está usando AsyncTask con .execute y .get. (No deberías hacer eso, por supuesto, pero StrictMode no detectará el problema). –

0

Por qué no probar la implementación de la llamada a la red en un AsyncTask? En la implementación del método onPostExecute, puede hacer lo que sea necesario en la interfaz de usuario (es decir, ocultar su barra de progreso, etc.).

O, si está utilizando compatibility/support library, o apuntando a Honeycomb o posterior, use un Loader en su lugar.

Cuestiones relacionadas