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

votos
2

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

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

Após a 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, vou 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.

Publicado 12/03/2010 em 19:56
fonte usuário
Em outras línguas...                            


3 respostas

votos
2

Você tentou lançar ActivityB, e em ActivityB evento onCreate lançar a Intenção Camera?

Respondeu 15/03/2010 em 12:31
fonte usuário

votos
1

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 a 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 bandeira Intenção chamado 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 intenção câmera de Atividade A, mas tê-lo encaminhar seu resultado na Atividade B.

Respondeu 16/03/2010 em 13:36
fonte usuário

votos
1

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 diz Pentium e fazê-lo o contrário.

Respondeu 16/03/2010 em 08:28
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more