Actividad de inicio de Android sin crear una nueva instancia
Supongamos que tengo actividad A que actúa como la actividad raíz de mi aplicación. Y formar esta actividad voy a la actividad B.
Quiero ser capaz de volver de B a A Sin crear un nuevo ejemplo de Actividad A.
- Subido APK a Play Store, tiene 0 dispositivos compatibles, pero no hay error
- Registrar la clase Application en Manifest?
- Back y Nav Up tienen resultados diferentes
- Android: icono de la aplicación para depurar y liberar el modo
- Error de fusión de manifiesto
Este código está en la Actividad B
public void onBackPressed() { super.onBackPressed(); // Intent intent= new Intent(getBaseContext(), MainActivity.class); // intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); Intent myIntent = new Intent(getBaseContext(), MainActivity.class); myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(myIntent); Log.d("Back", "TEST"); }
Pero en el umbral llamar a la onCreate en la actividad A. Lo que quiero hacer es tener A en segundo plano cuando se inicia la actividad b y cuando está terminado, cambia de nuevo a la actividad A
Este es el manifiesto
<activity android:name=".MainActivity" android:label="@string/title_activity_main" android:screenOrientation="unspecified" android:launchMode="singleTask" android:stateNotNeeded="false"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME"/> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:label="@string/app_name" android:name=".SubmenuActivty" > </activity>
- Recepción de datos para el esquema de url personalizado en Android
- Cómo hacer referencia a un icono de un proyecto de biblioteca en AndroidManifest.xml de la aplicación
- Mezcla de manifiesto de Android: diferentes actividades de lanzamiento del proyecto de biblioteca
- Cómo obtener la cadena de paquetes del manifiesto de Android
- Aplicación de Android que no se conecta a Wifi, pero funciona bien en 3G compartida a través de Wifi
- Cómo deshabilitar la combinación de manifiesto en Android Studio
- Android: dejar una aplicación con el botón de inicio y volver a una actividad diferente al pasar por una pulsación larga en el botón de inicio
- ¿Puedo usar una cadena de recursos para un nombre de paquete?
De acuerdo con el ciclo de vida de la actividad de Android, cuando se inicia una actividad A:
Lista de métodos del ciclo de vida:
Activity A.onResume(); Activity A.onStart(); Activity A.onCreate();
Actividad Estado:
Activity A : Resumed
Cuando inicia la actividad B ahora:
Lista de métodos del ciclo de vida:
Activity A.onStop(); Activity B.onResume(); Activity B.onStart(); Activity B.onCreate(); Activity A.onPause(); ... ... ...
Actividad Estado:
Activity A : Stopped Activity B : Resumed
Y cuando vuelvas a empezar A ahora:
Lista de métodos del ciclo de vida:
Activity B.onDestroy(); Activity B.onStop(); Activity A.onResume(); .... .... ....
Actividad Estado:
Activity B : Destroyed Activity A : Resumed
Este es el ciclo de vida de una actividad:
Puedes encontrar los detalles aquí
De acuerdo con el comportamiento predeterminado, la actividad A va al estado onStop () y no está viva y necesita crear una nueva instancia al volver a la actividad A. Todo lo que sé – no hay forma de mantener viva la instancia A.
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Pruébalo … Hace vieja actividad al frente sin nueva instancia …
Usted no necesita hacer nada. Simplemente elimine su método onBackPressed()
de la Actividad B.
De forma predeterminada, cuando se mueve de la actividad A a la actividad B , Android agrega la actividad A al backstack. Al presionar el botón Atrás de la Actividad B o finalizarlo, restaurará automáticamente la Actividad A de la pila posterior.
Si desea finalizar su Actividad B, llame al método finish()
cuando desee hacerlo.
Prueba esto
public void onBackPressed() { super.onBackPressed(); Log.d("Back", "TEST"); }
Y eso es todo, lo que usted necesita.
Utilice moveTaskToBack (true);
public void onBackPressed() { // TODO Auto-generated method stub moveTaskToBack(true); super.onBackPressed(); }
O También puede utilizar finish ()
- ¿Cómo obtengo una vista de imagen para rotar mientras traduce en Android?
- ¿Cuál es el significado de removeCallbacks (Runnable r) en Handler en Android