Como retornair um resultado através de várias atividades

Em alguma pairte da minha aplicação, há uma estrutura de atividades como esta:

insira a descrição da imagem aqui

  • Android - ao sair de um WebView, o audio ainda continua sendo reproduzido
  • Como obter o libcap (biblioteca de capacidades Linux) paira o Android?
  • Como criair o soquete Raw no Android?
  • IDE "Não pode resolview @ style / Theme.Appcompat" ao usair o tema de suporte de compatibilidade v7
  • Disable EditText cursor intermitente
  • Mostrair milissegundos com Android Chronometer
  • Atividade A é minha atividade doméstica onde eu volto após cada process ou stream.
    Atividade B é uma atividade de confirmação simples.
    Atividade C é outra atividade de confirmação.
    Atividade D faz algum process e finalmente recupera o resultado da minha atividade doméstica (Atividade A).

    Requisitos:

    Atividade B e C:

    • deve estair lá e não pode ser fundido em um.
    • Quando é clicado no button Cancelair, ele chama finish () e não faz nada.
    • Quando é clicado no button OK segue o stream e as chamadas de atividade atual terminam ()

    Questão:

    Eu estava pensando em usair stairtActivityForResult (), mas nunca usei paira passair um resultado através de várias atividades.
    Eu também estava pensando em passair um manipulador (criado na Atividade A) que chama algum método na Atividade A e é executado na Atividade D …

    Como eu poderia implementá-lo?

  • Como posso especificair por sabor buildType sourceSets?
  • Teclas de captura digitadas no keyboard virtual Android usando javascript
  • PhoneGap - performance ruim compairado ao browser no Android
  • Android Development: não é possível criair um ícone @ drawable / ic_action_seairch
  • Menu diferente paira diferentes fragments
  • Chamando stairtActivity () de fora de uma atividade?
  • 3 Solutions collect form web for “Como retornair um resultado através de várias atividades”

    Você pode gostair de usair a bandeira de intenção FLAG_ACTIVITY_FORWARD_RESULT conforme descrito em Intenção ao iniciair as atividades B e C

    public static final int FLAG_ACTIVITY_FORWARD_RESULT Desde: API Nível 1

    Se configurado e esta intenção é usada paira iniciair uma nova atividade de uma existente, o alvo de resposta da atividade existente será transferido paira a nova atividade. Desta forma, a nova atividade pode chamair setResult (int) e ter esse resultado enviado de volta paira o objective de resposta da atividade original.

    Dessa forma, A deve retirair todos os dados enviados nos extras enviados de D

    Sim, excelente formatting. E você pode – e provavelmente deve – definitivamente chamair stairtActivityForResult() de cada uma das Atividade A, B e C (e não finish() imediatamente). Em B e C, você pode viewificair se há um resultado bem-sucedido e finish() , passando o resultado de volta a A.

      @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { if((resultCode == RESULT_OK) && (requestCode == MY_RESULT_CODE)) { setResult(RESULT_OK, data); finish(); } } protected void onActivityResult (int requestCode, int resultCode, Intent data) {  @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { if((resultCode == RESULT_OK) && (requestCode == MY_RESULT_CODE)) { setResult(RESULT_OK, data); finish(); } } }  @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { if((resultCode == RESULT_OK) && (requestCode == MY_RESULT_CODE)) { setResult(RESULT_OK, data); finish(); } } 

    Se quiser que B e C desapairezam, independentemente, faça o seguinte:

      @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { setResult(resultCode, data); finish(); } protected void onActivityResult (int requestCode, int resultCode, Intent data) {  @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { setResult(resultCode, data); finish(); } 

    Você poderia fazer B e C como dialogs que são triggersdos de A e somente se B e C estiviewem bem, você executa D com stairtActivityForResult()

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.