Como posso receber CameraActivities resultar em uma atividade diferente (ou seja, não no único lançamento)?

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

  •  19-09-2019
  •  | 
  •  

Pergunta

Eu tenho Atividade A que aciona-se a intenção Camera via:

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

Depois da foto ser tirada posso facilmente pegar a imagem em:

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

Mas eu gostaria de receber o resultado em Atividade B em que a imagem pode ser editada. Agora eu estou recebendo o resultado em Atividade A e passá-lo sobre a Atividade B que resulta em mostrar a GUI da actividade de um por um curto tempo:

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

É claro que vai precisar do resultado da Atividade B em Atividade A após a imagem ter sido editado. Mas isso deve trabalhar com:

setResult(resultCode, data);

Então, tem que haver uma maneira de fazer o que eu preciso. Por favor me aponte na direção certa.

Foi útil?

Solução

Você tentou lançar ActivityB, e no lançamento do evento ActivityB onCreate a câmera Intenção?

Outras dicas

Você tecnicamente não pode fazer o que você está pedindo. Você terá que encontrar uma maneira de continuar passando-o do jeito que é e ocultar a interface do usuário ou fazer como Pentium diz e fazê-lo o contrário.

Edit: Não importa, eu descaracterizou como isso funciona. O que realmente acontece é que você pode usar a atividade A para iniciar Atividade B para o resultado, mas, em seguida, se a atividade B precisa começar Atividade C para continuar o processamento qualquer atividade Uma queria, você pode usar FLAG_ACTIVITY_FORWARD_RESULT para fazer Atividade C retornar seu resultado na Atividade A não B .


Eu não olhei para isso mais do que um olhar rápido, mas notei uma Intenção flag chamada FLAG_ACTIVITY_FORWARD_RESULT que de acordo com a documentação:

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.

Como eu disse, eu não tenho experiência com isso, mas que parece sugerir que você poderia lançar sua câmera intenção de Atividade A, mas tê-lo encaminhar seu resultado na Atividade B.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top