Tiempo inactivo de actividad para ActivityRecord

Así que tengo un problema extraño, y no estoy completamente seguro de lo que toda la información que debe proporcionar, pero voy a hacer todo lo posible – sólo quiero saber si tengo que añadir más información. Tengo un problema que cuando termino mi Activity y regreso a la Activity anterior (o la lanzo con una nueva Intent – el problema parece estar centrado en terminar la Activity ) el rendimiento de la IU cae drásticamente durante unos seis o siete segundos , Luego vuelve a la normalidad.

Desde LogCat , esta advertencia aparece de forma consistente:

 07-11 22:09:42.594: W/ActivityManager(292): Launch timeout has expired, giving up wake lock! 07-11 22:09:42.601: W/ActivityManager(292): Activity idle timeout for ActivityRecord{42bf6e00 com.kcoppock.sudokubeta/com.kcoppock.sudoku.SudokuBoardActivity} 

Tan pronto como la actividad se agota, el rendimiento de la interfaz de usuario vuelve a la normalidad. Hasta ese punto es muy lento. No tengo ningún código que conozco que podría estar bloqueando el hilo principal, e incluso he ido tan lejos como para comentar todo mi método onPause() para ver si hace alguna diferencia, y no lo hace.

La Activity no genera ningún subproceso de fondo, no realiza ninguna actividad de red, el único acceso de disco que tiene es un acceso de SharedPreferences . Las preguntas anteriores que he podido localizar son acerca de tiempos muertos inactivos para HistoryRecord , no ActivityRecord .

tienes una idea de que podría causar esto? ¿O cómo podría ir sobre la determinación de lo que está bloqueando el hilo de interfaz de usuario, si eso es lo que está sucediendo?

EDIT : Bueno, sólo trató de comentar todo excepto super.onCreate () y setContentView () – el problema persiste. No ocurre con ninguna otra actividad sino ésta, pero no hay NADA A ésta. : /

Oh, cariño. Una de esas cosas que es bastante difícil de diagnosticar fuera de ensayo y error, pero lo he descubierto. Para referencia, si alguien más tiene este problema, se redujo a una vista personalizada en mi diseño. Había añadido un ViewTreeObserver.OnGlobalLayoutListener() para hacer algunas modificaciones de diseño después del pase de diseño, pero dentro de ese oyente que modificó el diseño y, por tanto, causó otro diseño, esencialmente creando un bucle infinito (pero de alguna manera no causa un ANR). Mi solución fue así:

 private class BoardLayoutListener implements OnGlobalLayoutListener { @Override public void onGlobalLayout() { //...do stuff here //REMOVE this listener so that you don't repeat this forever ViewTreeObserver obs = SudokuBoard.this.getViewTreeObserver(); obs.removeGlobalOnLayoutListener(this); } } 

Esta solución es bastante irónica, teniendo en cuenta mi segunda respuesta más alta calificación en StackOverflow trata específicamente con esto. :PAG

suspiro

He tenido el mismo problema hoy, pero como resultó tener una causa y una solución diferentes, decidí agregar la información aquí solo en caso de que pudiera ayudar a otra persona.
En mi caso el problema fue causado porque tenía la línea siguiente dentro de mi método de onActivityResult() :
android.os.Debug.waitForDebugger();
Acabo de borrar la línea y el problema se había ido. Esta línea se utiliza generalmente para sincronizar el depurador con los subprocesos del sistema operativo, pero sólo pensé que no debería utilizarse en ninguna parte. Curiosamente el problema no aparecería hasta que tuve mi teléfono desconectado del escritorio.

Saludos

  • Mejores Prácticas de Android - Comunicación entre Actividad y Fragmentos
  • Cómo lograr animaciones de transacciones de fragmentos suaves en Android
  • ¿Cuál es la principal ventaja y la desventaja de "no mantener las actividades" en android
  • Cargar sólo parte de un archivo de mapa de bits en Android
  • El menú deslizante de Android bloquea la interfaz de usuario
  • Cómo detener la creación excesiva de objetos en los teléfonos Samsung?
  • La aplicación o la actividad lleva tiempo para cargarse algunas veces
  • ¿Por qué los pesos anidados son malos para el rendimiento? ¿Alternativas?
  • Limitación del tamaño de la textura? Android Open GL ES 2.0
  • Estado emergente directamente desde coldstart
  • Android adb velocidad usb
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.