2011-02-16 8 views

Respuesta

22

Por consiguiente implementación de una pantalla de bienvenida en Android que desea:

  1. mostrará una pantalla primer plano con algunos indicios de progreso para el usuario.
  2. Ejecuta una cadena de fondo para realizar tareas que requieren cierto tiempo indefinido.
  3. Ambos hilos se comunican entre ellos, ya que necesita el primer plano para mostrar el progreso en el fondo.
  4. Elimina correctamente el hilo de fondo cuando termine de realizar su tarea. Si planea usar AsyncTask en Android, tiene un problema allí. (Link)

he encontrado este tutorial y me sugieren fuertemente que: http://www.41post.com/4588/programming/android-coding-a-loading-screen-part-1

Parte 1 lograr esta tarea básica, parte 2 muestra cómo matas correctamente el AsyncTask. Y la parte 3 pone una vista personalizada en primer plano en lugar de ProgressActivity.

+0

En el paso 2, en lugar de esperar un tiempo indefinido, ¿puedo saber cuándo está todo cargado y luego descartar la pantalla de bienvenida? – DrFred

5

que podría hacer toda su carga en un AsyncTask entonces su onPostExecute quitar la pantalla de bienvenida. Esto ayudaría a garantizar que no bloquee el subproceso de IU mientras realiza tareas costosas que podrían causar una ventana emergente ANR.

2

Aquí hay un tutorial completo sobre cómo hacerlo. Yo mismo he usado este con excelentes resultados.

http://www.barebonescoder.com/2010/04/a-simple-android-splash-screen/

+0

En lugar de esperar una cantidad arbitraria de tiempo, ¿hay alguna manera de saber cuando todo se carga para iniciar la aplicación? – jul

+0

Luego, todo lo que tiene que hacer es comenzar desde su Splash e iniciar su actividad principal. Luego tiene una buena pantalla de bienvenida mientras se carga su actividad. – MinceMan

+0

El enlace parece estar muerto - * "Página no encontrada" *. – Pang

5

Aquí tiene, escribió un tutorial sobre cómo crear un SplashScreen con una barra de progreso:
http://blog.blundellapps.com/tut-splashscreen-with-progress-bar/

Básicamente, en lugar de su hilo se inicia una AsyncTask, se pasa una referencia a su progressSpinner en el AsyncTask y esto lo actualizará a medida que el hilo esté descargando recursos (o lo que sea que quieras hacer).

enter image description here

+0

¡Bastante bueno! No sé por qué los moderadores alguna vez eliminan este tipo de respuestas, lo que apunta a una solución que reside en una fuente externa, como la tuya. Al menos, me pasó a mí: (... De todos modos, (el blog) da un muy buen ejemplo de cómo implementar una barra de progreso. Gracias. – ivanleoncz

Cuestiones relacionadas