Inicie la aplicación de Android con actividad específica

Cuando una aplicación se inicia o se reanuda, me gustaría redirigir al usuario a una "Actividad" específica basada en una variable establecida en "SharedPrefences".

Para ello, estaba considerando tener un método que comprueba la variable de estado de SharedPreferences y redirige a la actividad correcta:

private void launchRedirect(Context ctxt) { Integer status = AppPreferences.getStatus(this); Intent i = new Intent(MainActivity.this, Activity1.class); switch (status) { case 0: i = new Intent(MainActivity.this, Activity2.class); case 1: i = new Intent(MainActivity.this, Activity3.class); case 2: i = new Intent(MainActivity.this, Activity4.class); case 3: i = new Intent(MainActivity.this, Activity5.class); } startActivity(i); } 

Y entonces podría llamar a este método en cada método 'onResume' para cada actividad de mi aplicación:

  public void onResume(Bundle savedInstanceState) { launchRedirect(this); } 

Esto significaría que el usuario no puede volver técnicamente a la última Actividad, porque cuando lo llaman, llama a Resume, y será redirigido al estado que corresponde con el usuario actual.

Supongo que esto podría conducir a algunos errores circulares sin embargo – ¿hay una mejor manera de hacer esto?

Creo que es una forma normal de hacerlo, excepto que también puede agregar el método call of finish (), si necesita que MainActivity se cierre en esta situación.

Además, no olvide las declaraciones de ruptura:

 private void launchRedirect(Context ctxt) { Integer status = AppPreferences.getStatus(this); Intent i = new Intent(MainActivity.this, Activity1.class); switch (status) { case 0: i = new Intent(MainActivity.this, Activity2.class); break; case 1: i = new Intent(MainActivity.this, Activity3.class); break; case 2: i = new Intent(MainActivity.this, Activity4.class); break; case 3: i = new Intent(MainActivity.this, Activity5.class); break; } startActivity(i); if (/* check if MainActivity should be closed */) { finish(); } } 

Por favor, asegúrese de que está actualizando el valor de preferencia según su activtiy de navegación. Eso ahorrará sus cheques innecesarios para el lanzamiento de la actividad.

  • Cómo tratar las preferencias compartidas almacenadas en una biblioteca
  • ¿La reinstalación de la aplicación suprime SQLiteDatabase o SharedPreferences?
  • NullPointerException en getDefaultSharedPreferences
  • Alcance de SharedPreferences
  • ¿Cuál es la diferencia entre commit () y apply () en Shared Preference
  • Guardar en SharedPreferences desde DialogPreference personalizado
  • Android getDefaultSharedPreferences
  • Ejecute el código una sola vez después de una instalación nueva, la preferencia compartida no es una solución.
  • Android - ¿Cómo usar SharedPreferences en la clase non-Activity?
  • ¿Cómo actualizar SharedPreferences en android cuando restaura desde un archivo?
  • Cómo guardar la lista <Object> a SharedPreferences?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.