Como todos sabemos, muchas aplicaciones de Android muestran una pantalla en blanco muy brevemente antes de que Activityse enfoque la primera . Este problema se observa en los siguientes casos:
Aplicaciones de Android que amplían la
Applicationclase global y realizan importantes inicializaciones en ella. ElApplicationobjeto siempre se crea antes que el primeroActivity(hecho que se puede observar en el depurador), por lo que esto tiene sentido. Esta es la causa del retraso en mi caso.Aplicaciones de Android que muestran la ventana de vista previa predeterminada antes de la pantalla de presentación.
La configuración android:windowDisablePreview = "true"obviamente no funciona aquí. Tampoco puedo configurar el tema principal de la pantalla de inicio Theme.Holo.NoActionBarcomo se describe aquí , porque [desafortunadamente] mi pantalla de inicio utiliza un archivo ActionBar.
Mientras tanto, las aplicaciones que no amplían la Applicationclase no muestran la pantalla blanca al inicio.
La cuestión es que, idealmente, las inicializaciones realizadas en el Applicationobjeto deben ocurrir antes de queActivity se muestre la primera . Entonces, mi pregunta es, ¿cómo puedo realizar estas inicializaciones al iniciar la aplicación sin usar un Applicationobjeto? Posiblemente usando un Threado Service, supongo.
Este es un problema interesante en el que pensar. No puedo omitirlo de la forma habitual (configurando el NoActionBartema), ya que, trágicamente, mi pantalla de bienvenida tiene un efecto ActionBardebido a algunas razones no relacionadas.
Nota:
Ya me he referido a las siguientes preguntas:
Referencias:
Applicationclase. Esto se debe a las versiones más recientes de la forma de Android de "iniciar en frío" las aplicaciones. Google realmente abordó los tiempos de lanzamiento en Google I / O este año y se arreglará en N según lo que recuerdo. Mientras tanto, debería mirar lo que Google llama una "pantalla de inicio de marca". Aquí hay un ejemplo sobre cómo crearlo: antonioleiva.com/branded-launch-screen - no más pantalla en blanco al principio ;-) Y por favor no use pantallas de bienvenida - es molesto para el usuario.


