Pasar datos a través de múltiples actividades

1- es mi primera actividad (principal) 2- es mi segunda actividad 3 – es mi tercera actividad

Quiero correr 2 de 1 y luego formar 2 ejecutar 3, y luego de 3 estoy tomando datos y devolverlo a 1. Chicos de esperanza que va a entender.

Aquí está mi código:

Runing 2 form 1 liek this:

Intent intent = new Intent(getApplicationContext(),MessageBox.class); intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); startActivityForResult(intent,5); 

Y luego corriendo 3 de 2 como este:

  Intent intent = new Intent(getApplicationContext(),ImageReceiver.class); startActivityForResult(intent,5); 

Y luego en 3 tengo algo como esto:

  setResult(10); finish(); 

Así que establezco el resultado así que en 2 para obtener este resultado tengo:

  if(requestCode==5) { if(resultCode==10) { Intent intent = new Intent(getApplicationContext(),MainActivity.class); setResult(5,intent); finish(); } } 

Y luego en 1 tengo:

  if(requestCode==5) { if(resultCode==5) { //here i am taking data from 3 } } 

El problema es que ni siquiera puedo abrir 2 coz en logcat estoy recibiendo:

04-23 22: 13: 15.579: E / AndroidRuntime (15313): android.util.AndroidRuntimeException: FORWARD_RESULT_FLAG utilizado al mismo tiempo que solicita un resultado

Y realmente no tengo lo que debo hacer. Por favor, mire este código.

No puede hacer esto al iniciar 2 de 1:

 Intent intent = new Intent(getApplicationContext(), MessageBox.class); intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); startActivityForResult(intent,5); 

Esto lanzará la excepción que está recibiendo. No puede utilizar FLAG_ACTIVITY_FORWARD_RESULT y startActivityForResult() juntos.

Si desea 1 para obtener el resultado de 3, entonces usted necesita para iniciar 2 de 1 como este:

 Intent intent = new Intent(getApplicationContext(), MessageBox.class); startActivityForResult(intent, 5); 

y luego iniciar 3 de 2 como este:

 Intent intent = new Intent(getApplicationContext(), ImageReceiver.class); intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); startActivity(intent); finish(); 

Esto indica a Android que la actividad 3 ( ImageReceiver ) debería reenviar su resultado a la actividad que llamó actividad 2 ( MessageBox ). Cuando la actividad 3 establece su resultado y termina, se onActivityResult() en la actividad 1 con los datos de resultado enviados desde la actividad 3.

comentar esta línea en la actividad 1

 intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); 

y esta línea en la actividad 2

 Intent intent = new Intent(getApplicationContext(),MainActivity.class); 

Deberías estar todo listo.

  • Velocidad de inicio en startActivity
  • Android onStop () no se llama al iniciar una nueva actividad en modo multi-ventana
  • Problema: Pasar datos grandes a la segunda actividad
  • Enviar datos del servicio a la actividad Android
  • Teclado bluetooth causará actividad destruir y recrear
  • Actividad de inicio de la URL
  • La actividad no regresa de Pausa
  • Permitir que el diálogo se muestre antes o durante onPause ()?
  • OnSaveInstanceState no se llama después de rotación de pantalla
  • ¿Flujo de datos entre Android BroadcastReceiver, ContentProvider y Activity?
  • Activity.finish () se llama pero la actividad permanece cargada en la memoria
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.