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 .

  • Cuenta de simulacro en ActivityInstrumentationTestCase2
  • ¿Cuál es la principal ventaja y la desventaja de "no mantener las actividades" en android
  • Práctica recomendada para mantener los datos en la memoria y la base de datos al mismo tiempo en Android
  • Uso de la batería, ¿qué esperar?
  • ¿Importa en qué orden llamo finish () y startActivity ()?
  • Optimización de AndEngine juego
  • ¿Cómo probar la función de sincronización de ejecución en android?
  • Honeycomb Android emulador es perro lento - se manejará antes del lanzamiento oficial?
  • Sencha Touch 2 - Desempeño de Android
  • WebView no carga la página web
  • Anulación de variables de Fragmento on onDestroy ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.