Android: Crear una sola tarea con actividades de varias aplicaciones (problema Lauchmode)

No sé cómo solucionar este problema de Android. En pocas palabras, el flujo entre mis 2 aplicaciones es como a continuación:

Fluir

  1. Vincular la aplicación A a un servicio en la aplicación Market (AIDL)
  2. Registre un BroadcastReceiver y llame a un método de servicio que devuelve un pendingIntent .
  3. Inicie PendingIntent (contiene la instancia de BillingActivity).
  4. Inicie PaymentActivity con " startActivityForResult () ".
  5. Hacer algunas cosas, terminar (finish ()).
  6. En el método onActivitiyResult () , envíe una difusión y finalizar.
  7. Obtener información de Broadcast .

Flujo entre mis 2 aplicaciones

Problema :

Quiero crear una tarea con los siguientes componentes:

  • Top1Activity (Aplicación A)
  • BillingActivity (aplicación de mercado)
  • PaymentActivity (aplicación de mercado)

Primer plano y tareas de fondo para Android

Intenté cambiar el BillingActivity + PaymentActivity "launchMode":

única instancia

Se crea una nueva tarea para ambos. Al presionar el botón de retorno (o llamar al método finish ()), el usuario es redirigido como se esperaba a la actividad anterior. Problema: "StartActivityForResult" no puede utilizarse entre varias tareas (onActivityResult se llama inmediatamente).

SingleTask

Al presionar el botón de retorno (o llamar al método finish ()) en BillingActivity, el usuario es redirigido a Top2Activity (que estaba en la tarea de fondo).

He perdido más de 48 horas tratando de resolverlo. Apreciaría tu ayuda. Puedo fijar el código si es necesario.

Gracias

———– EDIT 2015-02-02

Siguiendo el consejo de David, eliminé todos los modos especiales de lanzamiento:

TOP2Actividad (fondo):

<activity android:name=".activities.MainActivity" android:configChanges="orientation|keyboardHidden" android:label="@string/title_activity_main" android:screenOrientation="portrait" android:windowSoftInputMode="stateAlwaysHidden|adjustPan" > <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="xxx" /> <data android:host="xxx" /> </intent-filter> </activity> 

Mi Top1Activity (Primer plano):

 <activity android:name="activities.MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

BillingActivity (primer plano):

 <activity android:name=".activities.BillingActivity" android:configChanges="orientation|keyboardHidden" android:excludeFromRecents="true" android:label="@string/title_activity_billing" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.VIEW" /> </intent-filter> </activity> 

PaymentActivity:

 <activity android:name=".activities.PaymentActivity" android:configChanges="orientation|keyboardHidden" android:label="@string/title_activity_payment" android:screenOrientation="portrait" android:windowSoftInputMode="stateHidden" > </activity> 

Servicio AIDL devuelto pendienteIntención:

 Intent intent = new Intent(); intent.setClass(InBillingService.this, jp.xxx.activities.BillingActivity.class); intent.putExtra(Consts.PENDING_INTENT_INFO, result); intent.putExtra(Consts.RESULT_KEY, nextSession); PendingIntent pendingIntent; pendingIntent = PendingIntent.getActivity(InBillingService.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); bundle.putParcelable(Consts.PENDING_INTENT, pendingIntent); 

Al presionar el botón Atrás de BillingActivity (o PaymentActivity), todavía estoy redirigido a Top2Activity

Ni idea ? Gracias

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