2012-11-30 3 views
1

je mis à exécution les onBackPressed pour mon activité où il vérifiera la connexion Internet mais quand je clique sur le bouton de retour dans ma tablette, il ne fait rien. Je ne comprends pas quelle est la cause de cela. Peut aider?ANDROID onBackPressed travail ne marche pas pour l'activité

Ci-dessous est mon code

if (!cd.isConnectingToInternet()) { 
     AlertDialog.Builder splash = new AlertDialog.Builder(this); 
     splash.setIcon(R.drawable.ic_fail) 
       .setTitle("No Internet Connection") 
       .setMessage(
         "Please check your internet connection and try again.") 
       .setCancelable(false) 
       .setPositiveButton("Try again", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, 
            int id) { 
           Intent splash = new Intent(
             getApplicationContext(), 
             SplashActivity.class); 
           startActivity(splash); 
           finish(); 
          } 
         }) 
       .setNegativeButton("Wifi Setting", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, 
            int id) { 
           startActivity(new Intent(
             android.provider.Settings.ACTION_WIFI_SETTINGS)); 
           dialog.cancel(); 
          } 
         }); 
     AlertDialog alert = splash.create(); 
     alert.show(); 
    } else { 
     Thread timer = new Thread() { 
      public void run() { 
       try { 
        sleep(5000); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } finally { 
        Intent login = new Intent(getApplicationContext(), 
          LoginActivity.class); 
        startActivity(login); 
        finish(); 
       } 
      } 
     }; 
     timer.start(); 
    } 
} 

public void onRestart() { 
    super.onRestart(); 
    Intent splash = new Intent(getApplicationContext(), 
      SplashActivity.class); 
    startActivity(splash); 
} 

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    finish(); 
} 
+1

Voulez-vous fermer l'application sur le dos pressé ou vérifier l'internet ... –

+0

fermer l'application @KumarVivekMitra –

Répondre

0

-finish() est la bonne façon de fermer l'activité.

- Mais encore si elle n'a pas, pour une raison quelconque utiliser System.exit(0) après finish() .. ce va sûrement travailler .... Je sais que son pétrole brut ... mais fonctionne ...

///////////////////////////// partie éditée ///////////////// //////////////////////

- remplacer la méthode onKeyDown() de Activity.

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 

     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 

       this.finish(); 

      } 
     return true; 
    } 
+0

est la bonne façon de utilise system.ext (0)? –

+0

@SarahPhil j'ai déjà mentionné dans mon deuxième point que 'System.exit (0)' sera une façon grossière de le faire ......... mais il avait bien fonctionné avec moi jusqu'à maintenant .... ............ –

+0

ça ne marche pas. –

0

commentaire, et vérifiez

//super.onBackPressed(); 
+0

éditée je donne un essai. –

0

Essayez ceci:

@Override 
    public void onBackPressed() { 
     yourclassname.this.finish(); 
     android.os.Process.killProcess(android.os.Process.myPid()); 
     System.exit(0); 
     getParent().finish(); 
    } 
0

essayer la place. Je pense que cela fonctionnera pour vous.

@Override 
public void onBackPressed() { 
//super.onBackPressed(); 
// finish your Activity 
ActivityName.this.finish(); 
return; 
} 
4

juste essayer ce code ...

@Override 
     public void onBackPressed() 
     { 
      moveTaskToBack(true); 
     } 
+2

du texte aurait aidé cette réponse – dove

Questions connexes