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.

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> 

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: Introduzca aquí la descripción de la imagen

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 ()

  • Android: ¿Qué es R? ¿Por qué es tan Cryptic?
  • Actividad infantil en Android
  • Cómo orientar dispositivos xxxhdpi en el archivo de manifiesto de Android?
  • ¿Para qué se utilizan los indicadores de protección "appop" y "development"?
  • ¿Dónde están almacenados los permisos en Android?
  • ¿Es posible agregar algún elemento en los menús contextuales de android (menú del sistema)
  • Requerir permiso sólo para versiones android anteriores: maxSdkVersion no funciona?
  • Manifiesto Herramientas de fusión: reemplazar no tiene ningún efecto
  • Sobre cómo trabajar con Fragment en Android 2.1 actualizado
  • Múltiples aplicaciones android: etiquetas de nombre en el manifiesto
  • ¿Por qué puedo escribir en "mnt / sdcard" y no en "mnt / extsd"?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.