¿Cómo mostrar una pantalla de bienvenida de una vez?

En mi aplicación para Android, necesito diseñar una pantalla de bienvenida que se mostrará al usuario una sola vez después de instalar y abrir la aplicación. La aplicación en cuestión es una aplicación basada en bases de datos y me encantaría incluir algunas pantallas de 3 a 4 para ayudar al usuario a crear recursos reutilizables para su uso dentro de la aplicación y algunos consejos. Serían Alertas de diálogo con la última pantalla de bienvenida que mostraba la casilla de verificación "No mostrar otra vez".

El problema es realmente, cómo mostrar la pantalla de bienvenida sólo una vez. Cualquier ayuda o punteros a ese efecto son muy apreciados.

Guarde un indicador en las Preferencias cuando inicie la aplicación, después de haber hecho las cosas de la pantalla de bienvenida. Compruebe este indicador antes de mostrar la pantalla de bienvenida. Si la bandera está presente (en otras palabras, si no es la primera vez), no lo muestre.

Aquí hay un código de mi aplicación que hace exactamente eso.

En su actividad:

SharedPreferences mPrefs; final String welcomeScreenShownPref = "welcomeScreenShown"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mPrefs = PreferenceManager.getDefaultSharedPreferences(this); // second argument is the default to use if the preference can't be found Boolean welcomeScreenShown = mPrefs.getBoolean(welcomeScreenShownPref, false); if (!welcomeScreenShown) { // here you can launch another activity if you like // the code below will display a popup String whatsNewTitle = getResources().getString(R.string.whatsNewTitle); String whatsNewText = getResources().getString(R.string.whatsNewText); new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle(whatsNewTitle).setMessage(whatsNewText).setPositiveButton( R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }).show(); SharedPreferences.Editor editor = mPrefs.edit(); editor.putBoolean(welcomeScreenShownPref, true); editor.commit(); // Very important to save the preference } } 

He creado una SplashScreen con esto:

 Paquete com.olidroide;


 Import android.app.Activity;
 Import android.app.ProgressDialog;
 Import android.content.Intent;
 Import android.os.Bundle;
 Import android.os.Handler;
 Import android.os.Message;


 Public class SplashScreen extends Actividad {
 /** Se llama cuando se crea por primera vez la actividad.  * /
      Public ProgressDialog myDialog; 

     @Anular
     Public void onCreate (Bundle savedInstanceState) {

         Super.onCreate (savedInstanceState);
         SetContentView (R.layout.splashscreen);

         Nuevo Handler (). PostDelayed (nuevo Runnable () {

             Public void run () { 
                 MyDialog = ProgressDialog.show (SplashScreen.this, "", "Cargando", true);

                 Intención intención = nueva intención (SplashScreen.this, OtherActivity.class);
                 SplashScreen.this.startActivity (intención);
                 MyDialog.dismiss ();
                 SplashScreen.this.finish ();     
             }

         }, 3000); // 3 segundos
     }
 };
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.