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?

2 Solutions collect form web for “Inicie la aplicación de Android con actividad específica”

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.

  • Android SharedPreferences sin guardar
  • Android: Obtener todas las entradas seleccionadas de MultiSelectListPreference (SharedPreferences)
  • Cómo iterar a través de todos los objetos Bundle
  • Seguridad con SharedPreferences
  • Android: guardar el estado de la aplicación
  • Cómo evitar que una preferencia compartida sea clara al establecer
  • Guardar datos de ListView utilizando SharedPreferences
  • ¿Cuándo se aplicarán SharedPreferences () y commit ()?
  • Android - Almacenamiento / recuperación de cadenas con preferencias compartidas
  • Poner y obtener la matriz de cadenas de las preferencias compartidas
  • Ajuste el botón Visible en otro acticty con la configuración de Preferencias
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.