Primera vez que se muestra Solución de actividad

Necesito mostrar una SecondActivity sólo una vez y sólo en el primer lanzamiento de la aplicación. Lo implementé así (ver más abajo), pero realmente no me gusta una solución porque necesito inflar el diseño en onResume() porque si no tengo una Activity vacía cuando hago clic back botón de hardware que está en SecondActivity .

 public class TestActivity extends Activity { public static final String PREFS_NAME = "MyPrefsFile"; public static final String FIRST_RUN = "FirstRun"; SharedPreferences sharedPreferences; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sharedPreferences = getSharedPreferences(PREFS_NAME, 0); if (sharedPreferences.getBoolean(FIRST_RUN, false)) { setContentView(R.layout.main); } else { Intent i = new Intent(this, Second.class); startActivity(i); } } @Override protected void onResume() { super.onResume(); setContentView(R.layout.main); } } 

En la Second Activity simplemente pongo la bandera FirstRun a true.

En la primera Activity call finish() después de hacer la llamada a startActivity(i)

Me gusta esto…

 if (sharedPreferences.getBoolean(FIRST_RUN, false)) { setContentView(R.layout.main); } else { Intent i = new Intent(this, Second.class); startActivity(i); finish(); } 

A continuación, puede quitar setContentView(...) de onResume() .

Lo mejor que puedo pensar es tener Init actividad que no tienen ningún diseño y sólo decide qué actividad para ejecutar primero

Si lo único que quieres es evitar que el usuario vuelva a la actividad, agrega el indicador "noHistory" en tu archivo de manifiesto, como esto:

 <activity android:name=".SecondActivity" android:noHistory="true"> 

Si esta es tu actividad de "pantalla de bienvenida" y solo necesita ser mostrada en el inicio de la aplicación, haz esto:

 <activity android:name=".SecondActivity" android:noHistory="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 
  • Uso de las preferencias compartidas para un ahorro de alto valor
  • registerOnSharedPreferenceChangeListener no funciona para los cambios realizados en diferentes procesos
  • Las preferencias compartidas de Android no funcionan
  • Ejecute el código una sola vez después de una instalación nueva, la preferencia compartida no es una solución.
  • Cómo almacenar objeto de clase en android sharedPreference?
  • Cómo almacenar Hashmap en Android para que se reutilice cuando la aplicación se reinicie con las preferencias compartidas?
  • Cuando una aplicación se mueve forzadamente a SD-Card, ¿dónde van SharedPreferences?
  • ¿Es String una primitiva o un Objeto en Android o Java?
  • SharedPreferences no se eliminan en la aplicación de desinstalación de usuario
  • ArrayList <CustomClass> en SharedPreferences
  • ¿Cómo puedo ver el archivo de preferencias compartidas con Android Studio?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.