Mi aplicación se compone de algunas actividades.Definir actividad predeterminada (cuando se inicia la aplicación) programáticamente
La actividad A es mi menú principal con algunos iconos. Esta actividad puede iniciarse dependiendo del icono que presione: Actividad B, C, D, E o F.
Eso está bien y muy fácil, la Actividad A es la predeterminada.
Ahora, hice una opción de preferencia que permite a los usuarios comenzar su actividad favorita.
Algunos usuarios prefieren, de hecho, obtener directamente la Actividad B, por ejemplo.
La única manera que encontré una solución era hacer esto en Actividad A esta solución es muy feo porque Actividad A siempre se iniciará y cerrará automáticamente:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
final Intent intent = getIntent();
String action = intent.getAction();
if (Intent.ACTION_MAIN.equals(action)) {
switch (Integer.valueOf(settings.getString("Activitypref", "1"))) {
case 2:
Intent i = new Intent(ActivityA.this, ActivityB.class);
finish();
startActivity(i);
break;
case 3:
i = new Intent(ActivityA.this, ActivityC.class);
finish();
startActivity(i);
break;
case 4:
i = new Intent(ActivityA.this, ActivityD.class);
finish();
startActivity(i);
break;
case 5:
i = new Intent(ActivityA.this, ActivityE.class);
finish();
startActivity(i);
break;
case 6:
i = new Intent(ActivityA.this, ActivityF.class);
finish();
startActivity(i);
break;
default:
break;
}
}
Si el único propósito de la Actividad A es decidir qué otra actividad lanzar, entonces no veo esto como una solución desagradable. Parece que la Actividad A está haciendo su trabajo. – DeeV
Sí, pero el usuario puede elegir "omitir" esta actividad y pasar directamente a la Actividad X. Cuando se establece en preferencias, no quiero que se inicie la Actividad A, excepto cuando el usuario presiona el botón Inicio después de haber disfrutado de la Actividad X. –
Lo más molesto es el tiempo de carga y la pantalla parpadeando cuando se inicia la Actividad A y se cierra en "onCreate" –