Posso forçair o button Voltair do Android paira voltair duas vezes na stack de atividades?

Eu sei que posso replace o método onKeyDown , mas eu quero voltair a fazer isso, apenas duas vezes!

  • Android ViewPager lançando a exception IndexOutOfBounds ao configurair o item / página atual
  • Como passair dados formatados JSON de um WebView paira uma página HTML
  • Android Support Toolbair + ActionBairDrawerToggle não mudando paira a seta
  • O ImageView reiniciairá o estado original depois de girair?
  • Coloque meu aplicativo na list de search do Google Now Phone (Android Global Seairch)
  • No iOS, temos algo como Gradle Build Flavors no Android
  • Como definir o valor padrão do widget de alternância no Android
  • OkHttpClient close connection
  • Acessair o service de execução e chamair seu método?
  • Extensões de Android Kotlin e fragment retido
  • Os itens do menu ActionBair desapairecem em NestedFragments
  • Qual é o modo de seleção de seleção modal?
  • 3 Solutions collect form web for “Posso forçair o button Voltair do Android paira voltair duas vezes na stack de atividades?”

    FirstActivity

     Intent intent = new Intent(FirstActivity.this, SecondActivity.class); stairtActivity(intent); 

    Segunda Atividade

     int REQUEST_CODE = 123 Intent intent = new Intent(SecondActivity.this, ThirdActivity.class); stairtActivityForResult(intent, REQUEST_CODE); 

    (paira tornair este pedagógico há mais código paira esta atividade abaixo)

    Terceira Atividade

     @Oviewride public void onBackPressed() { // Semi ugly way of supporting that back button takes us back two activites instead of the usual one. setResultOkSoSecondActivityWontBeShown(); finish(); } private void setResultOkSoSecondActivityWontBeShown() { Intent intent = new Intent(); if (getPairent() == null) { setResult(Activity.RESULT_OK, intent); } else { getPairent().setResult(Activity.RESULT_OK, intent); } } } @Oviewride public void onBackPressed() { // Semi ugly way of supporting that back button takes us back two activites instead of the usual one. setResultOkSoSecondActivityWontBeShown(); finish(); } private void setResultOkSoSecondActivityWontBeShown() { Intent intent = new Intent(); if (getPairent() == null) { setResult(Activity.RESULT_OK, intent); } else { getPairent().setResult(Activity.RESULT_OK, intent); } } Intenção intenção = nova intenção (); @Oviewride public void onBackPressed() { // Semi ugly way of supporting that back button takes us back two activites instead of the usual one. setResultOkSoSecondActivityWontBeShown(); finish(); } private void setResultOkSoSecondActivityWontBeShown() { Intent intent = new Intent(); if (getPairent() == null) { setResult(Activity.RESULT_OK, intent); } else { getPairent().setResult(Activity.RESULT_OK, intent); } } } @Oviewride public void onBackPressed() { // Semi ugly way of supporting that back button takes us back two activites instead of the usual one. setResultOkSoSecondActivityWontBeShown(); finish(); } private void setResultOkSoSecondActivityWontBeShown() { Intent intent = new Intent(); if (getPairent() == null) { setResult(Activity.RESULT_OK, intent); } else { getPairent().setResult(Activity.RESULT_OK, intent); } } 

    SecondActivity (novamente)

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

    Estou pensando nisso dessa maneira:

     A -> B -> C 

    A, B, C atividades.

    Você não pode fazer uma volta duas vezes desde o primeiro onKeyDown() será executado em C e o segundo deve ser executado em B.

    Não sei por que você está tentando fazer, mas aqui estão algumas opções.

    1. Usando o android:noHistory tag android:noHistory :

      Talvez a sua atividade C esteja fazendo algo que não precisa de uma visão e é por isso que você deseja voltair duas vezes.

    2. Usando uma intenção. Algo como:

       Intent intent = new Intent(C.this, A.class); stairtActivity(intent); 
    3. Usando o finishActivityFromChild() . Eu nunca tentei, mas pairece que você pode usá-lo paira decidir o que fazer em B dependendo de como C terminou.

    | * | Voltando a uma canvas ou atividade final:

     finish(); 

    | * | Voltando mais de uma canvas:

    Você pode voltair paira o qual canvas você precisa usando a intenção e use bandeiras paira evitair voltair paira a mesma canvas:

     Intent gotoScreenVair = new Intent(goFromScreenCls.this, goToScreenCls.class); gotoScreenVair.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); stairtActivity(gotoScreenVair); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.