Comment puis-je recevoir CameraActivities résultat dans une autre activité (à savoir pas dans le lancement d'un)?

StackOverflow https://stackoverflow.com/questions/2435050

  •  19-09-2019
  •  | 
  •  

Question

J'ai Activité A qui lance l'intention de la caméra via:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_CAMERA);

Une fois la photo prise, je peux facilement saisir l'image dans:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)

Mais je voudrais recevoir le résultat de l'activité B où l'image peut être modifiée. En ce moment, je reçois le résultat dans l'activité A et le passer sur à l'activité B qui aboutit à montrer l'interface graphique de l'activité A pendant une courte période:

Intent i = new Intent().setAction("DisplayJPEG");
i.setClass(this, EditImageActivity.class);
i.putExtra("IMAGE_URI", uri);
startActivityForResult(i, REQUEST_EDIT_IMAGE);

Bien sûr, je aurai besoin le résultat de l'activité B en activité A après l'image a été modifiée. Mais cela ne devrait travailler avec:

setResult(resultCode, data);

Donc, il doit y avoir un moyen de faire ce que je dois. S'il vous plaît me diriger dans la bonne direction.

Était-ce utile?

La solution

Avez-vous essayé de lancer ActivityB et en cas ActivityB onCreate lancer l'intention de l'appareil photo?

Autres conseils

Vous pouvez techniquement pas faire ce que vous demandez. Vous aurez besoin de trouver un moyen de continuer en passant la façon dont vous êtes et cacher l'interface utilisateur ou faire comme Pentium dit et de le faire dans l'autre sens.

Edit: Nevermind j'ai mal lu comment cela fonctionne. Qu'est-ce qui se passe réellement est que vous pouvez utiliser Activité A pour démarrer l'activité B pour résultat, mais si l'activité B doit commencer l'activité C pour poursuivre le traitement quelle que soit l'activité A voulu, vous pouvez utiliser FLAG_ACTIVITY_FORWARD_RESULT pour rendre l'activité C retourner le résultat à l'activité A non B .


Je ne l'ai pas regardé dans ce plus d'un rapide coup d'œil, mais je remarque un drapeau intention appelé FLAG_ACTIVITY_FORWARD_RESULT qui, selon la documentation:

If set and this intent is being used to launch a new activity from an existing one, then the reply target of the existing activity will be transfered to the new activity. This way the new activity can call setResult(int) and have that result sent back to the reply target of the original activity.

Comme je l'ai dit, je ne l'ai pas expérimenté, mais qui semble suggérer que vous pouvez lancer votre intention de la caméra de l'activité A, mais ont en avant le résultat de l'activité B.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top