2011-07-15 17 views
7

Mi aplicación tiene tres actividades, por ejemplo A -> B-> C.Instancia única de actividad

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

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

No quiero ese comportamiento. Quiero que si hago clic en Notificación, debería redireccionar a la pantalla actual solamente. ¿Puede alguien ayudarme? (Mencioné activity:launchMode como SingleTask).

Respuesta

0

Usted puede ser capaz de utilizar una variable estática para determinar otros datos. Sin embargo, no estoy seguro de a qué cantidad o a qué tipo de datos está buscando acceder desde las otras actividades.

También escribir en almacenamiento persistente puede funcionar, pero de nuevo: la vaguedad de los datos que está almacenando y cómo dificultan la respuesta. Simplemente escriba/lea el almacenamiento persistente en el método onResume y onSuspend de cada Actividad (o cree una clase de súper actividad y extiéndala para A, B y C.

+0

Eso tampoco funciona para mí. Lo siento por tanto tiempo en respuesta – Sachchidanand

+0

almacenamiento persistente no funciona? – CrackerJack9

+0

No, eso no funciona, por lo que hemos cambiado el diseño de nuestra aplicación. Cualquier forma Gracias Gracias mucho – Sachchidanand

19

El uso de android:launchMode="singleTask" es probablemente el mejor enfoque, ya que no volverá a crear la actividad si ya se está ejecutando. Solo agréguelo a la actividad en su AndroidManifest.xml, y debe 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> 

He aquí otra pregunta que pueda ser útil: Android singleTask or singleInstance launch mode?

+0

no, no funciona. Lo intenté mucho pero mencioné simplemente una tarea única, no está trabajando en – Sachchidanand

Cuestiones relacionadas