Instancia Única de Actividad

Mi aplicación tiene tres actividades decir A -> B-> C

La actividad A se llama desde otra actividad a través de startActivityForResult() . Las actividades B y C también se denominan de manera similar. Tengo que llamar a la actividad A de la barra de notificaciones también (si hay alguna notificación específica).

Ahora, si actualmente estoy en la actividad B o C, y hago clic en la barra de notificación y llamo a la actividad A, la aplicación sólo va a la actividad A y los datos introducidos a través de las actividades B o C no persisten.

No quiero ese comportamiento. Quiero que si hago clic en Notificación, debe redirigir a la pantalla actual solamente. Puede alguien ayudar. (Mencioné la activity:launchMode como SingleTask ).

2 Solutions collect form web for “Instancia Única de Actividad”

Es posible que pueda utilizar una variable estática para determinar otros datos. No estoy seguro de cuánto o qué tipo de datos está buscando acceder a las otras actividades, sin embargo.

También escribir en el almacenamiento persistente puede funcionar, pero de nuevo – la vaguedad de qué datos están almacenando y cómo hace difícil responder. Simplemente escriba / lea el almacenamiento persistente en el onResume y onSuspend de cada Activity (o cree una clase super Activity y onSuspend para A, B y C.

Usar android:launchMode="singleTask" es probablemente el mejor enfoque, ya que no volverá a crear la actividad si ya se está ejecutando. Sólo tienes que añadirlo a la actividad en tu AndroidManifest.xml, y deberías estar todo listo.

 <activity android:name=".MyActivity" android:label="@string/app_name" android:launchMode="singleTask" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Aquí hay otra pregunta que podría ser útil: Android singleTask o singleInstance modo de inicio?

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