Buscando alta y baja no ha dado ningún resultado para mi problema. Por lo tanto, finalmente estoy publicando para pedir ayuda.¿Cómo hacer que startActivityForResult funcione en la actividad externa?
Tengo dos aplicaciones, ambas escritas por mí. La aplicación A inicia la aplicación B, pasando parámetros a través de Intent.putExtra(). Esto funciona perfectamente bien cuando se inicia la aplicación B, los parámetros se pasan muy bien.
Sin embargo, no puedo encontrar una manera de devolver una respuesta a la Aplicación A. El uso de startActivityForResult() siempre me dio onActivityResult() inmediato con RESULT_CANCELED. Tras una inspección adicional, el logcat me dio una advertencia que decía "La actividad se está iniciando como una nueva tarea, por lo que se cancela el resultado de la actividad".
Intenté hacer la actividad de la aplicación B con diferentes modos de lanzamiento, filtros de acción (android.intent.action.PICK), pero nada de lo que hice cambió nada.
¿Estoy tratando de hacer lo imposible? Por lo que entiendo, lo que estoy intentando hacer debería ser similar al uso de actividades de terceros para seleccionar imágenes de la galería de fotos del dispositivo.
EDIT:
Ok, he intentado eliminar la categoría lanzador, desde la actividad B, pero todavía no funciona. Aquí está mi actividad:
<activity android:name=".${CLASSNAME}" android:label="@string/app_name" android:configChanges="mcc|mnc|locale|keyboardHidden|orientation" android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.PICK" />
</intent-filter>
</activity>
¿Alguien realmente ha conseguido que esto funcione? Estoy empezando a sospechar que comenzar una actividad que es de otra aplicación nunca puede devolver los resultados ya que parece que siempre comenzará una nueva tarea sin importar lo que pongas en el "filtro de intención".
publique el código que está utilizando compilar e inicie la intención para ActivityB. deberías poder poner algo como esto: 'this.setResult (Activity.RESULT_OK, data);' en la segunda Actividad para volver al primero. – FoamyGuy
¿Puedes publicar tu archivo de manifiesto? Tal vez la Actividad B tiene alguna etiqueta especial –
nandeesh
Hmmm ... La Actividad B tenía la ¿Esto causa un problema? No estoy en mi máquina de trabajo en este momento. Trataré de eliminar eso y ver si eso funciona. Lo que he leído es que comenzar una actividad que no forma parte del mismo paquete siempre comenzará en una nueva tarea. Si ese es el caso, startActivityForResult no funcionaría para iniciar una actividad externa en otra apk? –