2012-11-30 55 views
1

我爲我的活動實施了onBackPressed,它將檢查互聯網連接,但是當我點擊我的平板電腦中的後退按鈕時,它什麼都不做。我不明白這是什麼原因。可以幫助?ANDROID onBackPressed不適用於活動

下面是我的代碼

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

你想關閉就回壓的應用程序或上網查資料... –

+0

關閉應用程序@KumarVivekMitra –

回答

0

-finish()是關閉活動的正確方法。

-但還是如果沒有,由於某種原因,使用System.exit(0)finish() ..這一定會努力 ....我知道它的原油...但工程...

/////////////////////////////編輯部分///////////////// //////////////////////

-覆蓋的方法的ActivityonKeyDown()

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

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

       this.finish(); 

      } 
     return true; 
    } 
+0

是它的正確方法使用system.ext(0)? –

+0

@SarahPhil我在第二點已經提到'System.exit(0)'將是一種粗糙的方法來做到這一點.........但它一直與我一直工作到現在.... ............ –

+0

它不起作用。 –

0

評論,檢查

//super.onBackPressed(); 
+0

我試試看。 –

0

試試這個:

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

試試這個吧。我認爲它會爲你工作。

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

只是試試這個代碼...

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

一些文字將有助於這個答案 – dove