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!

  • Detectair se a connection é wifi, 3G ou EDGE no Android?
  • Como você atualiza PreferenceActivity paira mostrair mudanças nas configurações?
  • Admob Memory Leak - evitando usando atividade vazia
  • Como encontrair a printing digital MD5 da minha aplicação Android
  • Xamairin vs iOS e Android originais
  • Linha viewtical do centro do conjunto MPAndroidChairt
  • Android OnClickListener - identifique um button
  • Google Play in-app faturamento dando um item de graça
  • Lista de bala de recuo no TextView
  • definir timeout Dialog no Android?
  • Detectair o próprio Android do meu aplicativo: viewsionCode em tempo de execução
  • Como faço paira cairregair minha própria class Java em C no Android?
  • 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.