Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Definir actividad predeterminada (cuando se inicia la aplicación) mediante programación

Mi aplicación está compuesta por una pocas actividades.

La actividad A es mi menú principal con algunos iconos. Esta Actividad puede iniciarse dependiendo del icono que pulse: Actividad B, C, D, E o F.

  • Cómo configurar la posición inicial de un ScrollView?
  • OnChildView y hasSiblings con Espresso
  • Facturación en la aplicación de Android Verificación de la recepción en la red de puntos (C #)
  • Envío de comandos AT a través de ADB Android
  • Establecer el fondo de la aplicación para que sea igual que el fondo de pantalla de inicio
  • 'IllegalStateException: Actividad se ha destruido' cuando 'getSupportFragmentManager ()' se llama después de Restart de actividad
  • Eso está muy bien y muy fácil, la actividad A es la predeterminada.

    Ahora, he hecho una opción de preferencia que permiten a los usuarios iniciar su actividad favorita.

    Algunos usuarios, de hecho, prefieren obtener directamente Actividad B, por ejemplo.

    La única manera en que encontré una solución fue hacerlo en la Actividad A Esta solución es muy fea porque la Actividad A siempre se iniciará y se 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; } } 

  • Android scrollview autoscrolling como texto se añade
  • Convertir píxeles en dp
  • Color de fondo del elemento del cajón de navegación para el elemento seleccionado
  • Cómo forzar el lenguaje en la aplicación android
  • Android: El modo de timbre cambiado a silencioso no detiene la vibración del teléfono
  • (Java / Android) Calcular días entre 2 fechas y presentar el resultado en un formato específico
  • One Solution collect form web for “Definir actividad predeterminada (cuando se inicia la aplicación) mediante programación”

    En lugar de ActivityA , considere el uso de la actividad de wrapper para ser llamada desde el lanzador. Eliminará la necesidad de consultar ACTION_MAIN. También puede almacenar el nombre de la actividad de destino en las preferencias y utilizarlo para iniciar directamente su actividad de destino mediante una firma de intención diferente:

     public Intent (String action) 

      <activity class=".StartActivity" android:label="..."> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity class=".ActivityA" android:label="..."> <intent-filter> <action android:name="mypackage.ActivityA" /> </intent-filter> </activity> 

    Y en StartActivity

     public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); settings = PreferenceManager .getDefaultSharedPreferences(getBaseContext()); String action = settings.getString("Activitypref","mypackage.ActivityA"); Intent intent = new Intent(action); startActivity(intent); .... } 

    Es posible que necesite jugar un poco para hacer las cosas bien.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.