Qué cosas se ejecutan en el hilo principal de la interfaz de usuario al abrir una aplicación para Android
Tengo una aplicación para Android que tiene TabLayout como esto:
- Android: ¿Dejar de usar Looper?
- Ejemplo de comunicación con HandlerThread
- La interfaz de usuario de Espresso se ejecuta cuando ejecuto una sola prueba, pero falla cuando ejecuto un conjunto de pruebas
- Async Task OnProgressUpdate CalledFromWrongThreadException: Sólo el subproceso original que creó una jerarquía de vista puede tocar sus vistas
- Fragmentos e hilos en Android
Cada pestaña carga un fragmento y hay 6 tabs.
También tiene un cajón de navegación como este:
Al hacer clic en las opciones se abre una nueva Actividad.
También hay pocos botones en la barra de herramientas y en el clic de que nueva actividad se abre.
La aplicación también tiene el panel Deslizante como este:
El problema es que cuando abro la aplicación, después de unos segundos me muestra:
Cuando esto viene puedo ver en el logcat que
La aplicación puede estar haciendo demasiado trabajo en su hilo principal
La solución para ello se da aquí
(Este mensaje sólo aparece en algunos de los dispositivos) cuando hacemos clic en "Aceptar", la aplicación continúa ejecutándose, pero nuevamente después de unos segundos aparece el mismo mensaje. He notado una cosa más que cuando dejo la aplicación abierta por un período más largo de tiempo, entonces este mensaje no viene y la aplicación se ejecuta sin problemas.
Quiero saber que las otras actividades también se carga para ejecutar en el hilo principal de la interfaz de usuario cuando abrimos la aplicación de Android?
Creo que los Fragmentos utilizados en ViewPager se cargarán en el hilo principal de la interfaz de usuario al abrir la aplicación.
El código para agregar fragmentos a ViewPager es así:
tabLayout = (TabLayout) findViewById(R.id.tabLayout); viewPager = (ViewPager) findViewById(R.id.viewPager); viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager()); viewPagerAdapter.addFragments(new HomeFragment(), "Home"); viewPagerAdapter.addFragments(new TrendingFragment(), "Best Deals"); viewPagerAdapter.addFragments(new HomeServicesFragment(), "Home Services"); viewPagerAdapter.addFragments(new EntertainmentFragment(), "Entertainment"); viewPagerAdapter.addFragments(new FashionFragment(), "Fashion"); viewPagerAdapter.addFragments(new VehicleServicesFragment(), "Vehicle Services"); viewPagerAdapter.addFragments(new OthersFragment(), "Other Services"); viewPager.setAdapter(viewPagerAdapter); tabLayout.setupWithViewPager(viewPager);
También quiero saber si puedo utilizar AsyncTask para cargar este TabLayout? Una vez más no sé qué línea es responsable de la actualización de la interfaz de usuario en el código anterior. No estoy seguro si esto ayudará a resolver el problema o no?
- Dibujo de lienzo SurfaceView de Android con un hilo
- RxJava Android: cargar datos de caché en los subprocesos adecuados
- ¿Puedo tener un ejemplo de mostrar un brindis usando runOnUiThread.
- Segunda AsyncTask no se ejecuta
- Programación con SurfaceView y estrategia de hilos para el desarrollo de juegos
- Thread / Handler error - El token de barrera de sincronización de cola de mensajes especificado no se ha publicado
- Patrón de bloqueo de múltiples hilos de SQLiteDatabase
- Servicio androide con repetición de hilo en el fondo con el bloqueo parcial de la estela
Mi problema de conseguir el mensaje
La aplicación puede estar haciendo demasiado trabajo en su hilo principal
Está resuelto, y ahora estoy pensando en escribirlo aquí. El problema estaba allí en las imágenes drawables
, yo estaba teniendo una imagen con menos tamaño pero de alta resolución y estaba utilizando que en el ViewPager
. Al cambiar las imágenes, el problema desapareció.
Bien, he hecho una pregunta más:
Quiero saber que las otras actividades también se carga para ejecutar en el hilo principal de la interfaz de usuario cuando abrimos la aplicación de Android?
Esta pregunta puede sonar poco conectada porque como sabemos que cada actividad tiene su propio ciclo de vida y se crea y destruye de acuerdo con eso. Por lo tanto, por supuesto sólo la actividad principal con filtro de intención con categoría como LANZADOR se carga cuando la aplicación se carga. Hice esta pregunta porque estaba creando muchos archivos SharedPreferences
en el subproceso principal de la interfaz de usuario en otras Activities
. Así que pensé que la creación de SharedPreferences
archivo puede ser una razón para el problema.
- Dagger 2 Inyecciones estáticas
- En android, cómo saber que el contacto se ha eliminado / actualizado / agregado y qué contacto se ha agregado recientemente.