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:
- ¿Dónde se almacenan las preferencias compartidas?
- Cómo almacenar objeto de clase en android sharedPreference?
- SharedPreferences lee valores antiguos
- Android: copiar / duplicar las preferencias compartidas
- onSharedPreferenceChanged no se disparó todo el tiempo
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?
- Ciclo de vida de Android SharedPreference
- ¿Preferencias compartidas? Javax.crypto.BadPaddingException: bloque de pad corrompido sólo en algunos dispositivos
- ¿Cómo obtengo las preferencias para trabajar en Android?
- ¿Cómo puedo almacenar una Matriz de Integer en SharedPreferences en Android?
- Guardar matriz de bytes con SharedPreferences
- Conversión de JSONArray a matriz normal
- Agregar preferencias dinámicas de la casilla de verificación en Android y mostrarlas en la pantalla de preferencias?
- Cómo utilizar SharedPreferences en Android para almacenar, buscar y editar valores
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.