Iniciar actividad sin mostrarla
Tengo una actividad A que inicia la actividad B y la actividad B inicia la actividad C. ¿Existe una manera de no mostrar la actividad B. Quiero este comportamiento porque si no hay contenido (por ejemplo, para ListView) para la actividad B, muestre la actividad C on Que selecciono algunos datos, y luego presione el botón Atrás para volver a la actividad B. El punto es que me gustaría tener actividad B en pila de actividad, pero no para mostrarlo en ciertos casos.
- Tratando de UNINSTALL_SHORTCUT pero el acceso directo no desaparecerá
- Compruebe el inicio de sesión en todas las actividades
- Android, Guardar y cargar un mapa de bits en caché de diferentes actividades
- ¿Está bien entender que la actividad es similar a ViewController en iOS?
- ACTION_SEND utilizado para enviar sms
- ¿Por qué Android Studio me dice que utilice getSupportActionBar () en lugar de getActionBar ()?
- onTouchEvent () of Activity se dispara 3 veces?
- Cómo se muestra el cuadro de diálogo Error ANR en el hilo principal
- Cómo realizar un seguimiento de las actividades en la pila de actividades
- Appcompat-v7: vista personalizada no alineada correctamente en ActionBar
- Ejecute la Actividad B desde el botón Notificación y pulse el botón Atrás para ejecutar la Actividad A
- Activity.finish () se llama pero la actividad permanece cargada en la memoria
- ¿Cuál es el punto de `Content_main.xml`?
He encontrado la solución:
- La actividad A inicia la actividad B con un parámetro extra (intention.putExtra ("something", true))
- Actividad B:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getIntent().hasExtra("something") && getIntent().getBooleanExtra("something", false) { //show activity B setContentView(R.layout.activity_B); } else { //don't show activity B, start activity C startActivityForResult(activity_C, ACTIVITY_NOT_INITIALIZED); //start activity C } }
// cuando regresó de la actividad C, compruebe si la actividad B ya estaba inicializada
protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == ACTIVITY_NOT_INITIALIZED) { //show activity B setContentView(R.layout.activity_B); } }
En su conjunto de manifiesto
android:theme="@android:style/Theme.NoDisplay"
Para su actividad.
No establezca setContentView () para la actividad B
Sólo llama a startActivity()
en el método onCreate()
de la actividad B. No se mostrará, pero estará en la pila de actividades.
Puede llamar a startActivity, sin llamar a setContentView para una presentación. ¡Espero que esto ayude!