2010-04-09 10 views
15

En mi aplicación, primero muestra una pantalla de bienvenida. Después de eso otra actividad, entonces mi actividad principal debe ser mostrada. Este es mi plan de diseño. La segunda actividad (es decir, antes de la actividad principal) debe mostrarse para el usuario por primera vez de la aplicación. Si él/ella cierra la aplicación, la pantalla de inicio redirigirá automáticamente a la actividad principal. ¿Cómo hago esto? ¿Algunas ideas? Estoy desarrollando mi aplicación para teléfonos Android.Compruebe si primer usuario de mi aplicación en Android

Respuesta

20

Persista una bandera en preferences y revíselo al iniciar. Cambie su estado después de que se muestre el splash una vez.

+0

la forma de gestionar diferentes acciones dependiendo de si es la primera carrera o no? Por ejemplo: ejecute al usuario a través del registro si se ejecuta por primera vez y muestre la página de inicio si no es así. – Sndn

1

Tendría que guardar los datos en alguna parte, en su caso sería más fácil simplemente escribir un archivo vacío después de la primera ejecución de la aplicación. Entonces, verificaría la existencia de este archivo y, si estuviera allí, no mostraría la segunda actividad y solo mostraría la actividad principal.

39

Puede p. Ej. use un objeto sharedPreference para almacenar un valor booleano que le indique si esta es la primera vez que el usuario abre la aplicación. Verifique la preferencia cuando el usuario inicie la aplicación, y si devuelve verdadero, entonces muestre la pantalla del medio.

private SharedPreferences mPreferences; 
.... 
boolean firstTime = mPreferences.getBoolean("firstTime", true); 
if (firstTime) { 
    SharedPreferences.Editor editor = mPreferences.edit(); 
    editor.putBoolean("firstTime", false); 
    editor.commit(); 
    showMiddleActivity(); 
} 

Algo así.

Editar: Golpeado a ella por jqpubliq ...

+0

También me aseguraría de que el nombre de preferencias que seleccione sea más exclusivo en la denominación, utilizando el formato "URI" habitual para asegurarse de que otras aplicaciones no utilicen la misma preferencia "firstTime". Algo así como "com.yoursite.yourapp.FirstTime", con suerte nadie más nombraría sus preferencias de la misma manera que su sitio y aplicación. – Adam

+1

Estoy bastante seguro de que las preferencias son locales para la aplicación, así que no hay necesidad de ponerles un prefijo ni nada. – alexanderblom

+3

Creo que la primera línea debe ser: private SharedPreferences mPreferences = getSharedPreferences ("prefsFileName", 0); o similar – tayler

Cuestiones relacionadas