La aplicación o la actividad lleva tiempo para cargarse algunas veces

He creado una actividad de inicio desde donde llamo otra actividad que tiene un paginador de vista y muestra algunas páginas introductorias.

Esta aplicación estaba tomando tiempo para cargar, así que pensé en mostrar un diálogo de progreso hasta que la actividad se carga, pero ese diálogo de progreso también aparece unos segundos más tarde.

Actividad de inicio:

public class StartUpActivity extends AppCompatActivity { boolean isUserFirstTime, login; public static String PREF_USER_FIRST_TIME; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); isUserFirstTime = Boolean.valueOf(Utils.readSharedSetting(StartUpActivity.this, PREF_USER_FIRST_TIME, "true")); Intent introIntent = new Intent(StartUpActivity.this, SlidingActivity.class); introIntent.putExtra(PREF_USER_FIRST_TIME, isUserFirstTime); ProgressDialog dialog = new ProgressDialog(StartUpActivity.this); dialog.setMessage("Welcome to Mea Vita, please wait till the app loads."); dialog.setCancelable(false); dialog.setInverseBackgroundForced(false); dialog.show(); new Handler().postDelayed(new Runnable() { @Override public void run() { //Here you can send the extras. startActivity(new Intent(StartUpActivity.this,SlidingActivity.class)); // close this activity finish(); } }, 4000); } } 

Esto no sucede cada vez, sólo a veces. ¿Cuál puede ser la posible razón de esto? ¿Cómo puedo detener esto? ¿Alguna solución? Gracias..

Hay un extraño problema con el nuevo Android Studio 2.0 (el mismo problema en 2.1) la primera vez que se inicia la aplicación tarda más de lo habitual (por ejemplo, 2, 3 segundos o, a veces parpadea o se vuelve negro) este problema sólo ocurre en el modo de depuración y no efecto su APK liberado.

Una solución temporal para corregir esto es desactivar instant run :

 Settings → Build, Execution, Deployment → Instant Run and uncheck Enable Instant Run 

En primer lugar, haga como regla para hacer todos los datos cargando en tareas asíncronas, debe comprobar la actividad que desea iniciar donde cargar datos.

El problema está en su segunda actividad. oncreate método oncreate debe usarse sólo para hacer findviews o iniciar async tasks , no cargar ninguna en oncreate o en onstart o onresume . Probablemente está cargando imágenes de alta resolución en la presentación deslizante o cargando datos en ella.

Hay otra manera, cargar todos los datos en la tarea asíncrona en la primera actividad, luego con los datos listos iniciar la segunda actividad con los datos ya cargados.

Hay algunas cosas que pueden cargar lentamente.

  1. Android necesita leer su código de almacenamiento y cargar las clases en RAM.
  2. Supongo que Utils.readSharedSetting(StartUpActivity.this, PREF_USER_FIRST_TIME, "true") lee de preferencias. Es un archivo que está leyendo de forma sincrónica.
  3. En realidad lanzar el diálogo toma una cantidad muy pequeña de tiempo.

Sugiero que muestre su carga dentro de la actividad misma para minimizar el trabajo necesario para procesarla.

Además, puede almacenar PREF_USER_FIRST_TIME como un boolean lugar de una String .

  • Obtención de datos pesados ​​lanza Ventana de cursor: La ventana está llena de error
  • Práctica recomendada para mantener los datos en la memoria y la base de datos al mismo tiempo en Android
  • Consejos para mejorar la tasa de llenado de OpenGL ES en Android
  • Cargar sólo parte de un archivo de mapa de bits en Android
  • Es posible hacer SpeechRecognizer más rápido?
  • Recyclerview de Android vs ListView con el usuario
  • ¿Por qué el emulador de Android es tan lento? ¿Cómo podemos acelerar el emulador de Android?
  • Problema con la cámara personalizada de Android en algunos dispositivos
  • Anulación de variables de Fragmento on onDestroy ()
  • Eficiencia de Android: importar métodos estáticos o importar la clase
  • ¿Qué capacidades de eliminación automática de overdraw Android proporciona?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.