Tengo 2 actividades, cada una en aplicaciones separadas. Actividad1 tiene un botón el usuario puede hacer clic y llama a la segunda actividad utilizando una intención en su onClick()
método:Android onActivityResult llamado early
Intent myIntent = getPackageManager().getLaunchIntentForPackage(com.myProject.Activity2);
startActivityForResult(myIntent, 600);
Esto inicia correctamente Actividad2 de Actividad1, pero onActivityResult
se llama en Actividad1 antes onCreate
obtiene la llamada en Actividad2, en vez de en onBackPressed()
donde configuré el intento de devolución.
Aquí es el método para onCreate
Actividad2:
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
Aquí es la versión actual de onBackPressed
método para Actividad2:
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("Stuff", someStuff);
if(getParent()==null){
setResult(Activity.RESULT_OK, intent);
}else{
getParent().setResult(Activity.RESULT_OK, intent);
}
finish();
super.onBackPressed();
}
Mi AndroidManifest.xml tiene el siguiente filtro de intención para Actividad2:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
He verificado que mi launchMode
es standard
(y no singleTask
, etc.) según lo aconsejado here y mi código de solicitud no es negativo como advertido here. También probé android:launchMode="singleTop"
, pero eso fue un no-go también.
También probé no llamar finish()
en onBackPressed()
para Actividad2 como se mencionó here (también con sólo super.onBackPressed()
como se sugiere here) y otra vez que calificó como se sugiere here.
Probé a comentar la línea intent.putExtra("Stuff", someStuff);
, ya que parecía causar problemas para this person.
¿Alguna idea de lo que podría estar haciendo mal?
Muchas gracias por regresar y publicar su solución. He estado atascado en este problema durante mucho tiempo y también intenté todas las soluciones que encontraste en tu pregunta en vano. Esto lo solucionó e hizo que mi día fuera muchísimo mejor =) –
Uso startActivityForResult SIN setClassName o nombres completamente calificados en todos mis proyectos y todos funcionan perfectamente excepto en un caso. Así que probé su solución en ese caso y no hizo ninguna diferencia. – user316117
2h !! Gracias tan mutch para la solución – Anthone