1. 程式人生 > >Android按返回鍵退出程式

Android按返回鍵退出程式

1. 按返回鍵後,彈出對話方塊,讓使用者選擇

   @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        switch (keyCode) {
            case KeyEvent.KEYCODE_BACK:
                AlertDialog.Builder build = new AlertDialog.Builder(this);
                build.setTitle("注意")
                        .setMessage("確定要退出嗎?")
                        .setPositiveButton("確定", new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub
                                finish();

                            }
                        })
                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                // TODO Auto-generated method stub

                            }
                        })
                        .show();
                break;

            default:
                break;
        }
        return false;
    }

2. 按返回鍵後,彈出 Toast  提示 ,再按一次退出程式
  private long exitTime = 0;
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK
                && event.getAction() == KeyEvent.ACTION_DOWN) {
            if ((System.currentTimeMillis() - exitTime) > 2000) {
               Toast.makeText(MainActivity.this,"再按一次退出程式",Toast.LENGTH_SHORT).show();
                exitTime = System.currentTimeMillis();
            } else {
                finish();
                System.exit(0);
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
在這裡要說明一下:

(1)不要忘記,這個方法是重寫的

(2)對於初學者來說,有的同學會只新增這段程式碼,就會按完之後返回登入或註冊頁面,這個原因就是沒有在 登入 或註冊頁面裡 finish() ,這樣登入註冊還是在任務棧裡面,對於這塊,我建議有想法的人,可以瞭解一下activity的四種載入模式,這塊就會更加理解了。

如有什麼不足,請多多指教,  歡迎大家轉載。

相關推薦

Android返回退出程式

1. 按返回鍵後,彈出對話方塊,讓使用者選擇 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stu

Android返回退出程式但不銷燬

moveTaskToBack()方法:在activity中呼叫 moveTaskToBack (boolean nonRoot)方法即可將activity 退到後臺,注意不是finish()退出。 引數說明: 引數為false——代表只有當前activity是task根,指應用啟動的第一個activi

Android返回彈出對話方塊退出應用程式

在當前的Activity中新增以下程式碼:import android.app.Activity; import android.app.AlertDialog; import android.con

Android 雙擊返回退出程式 實現

思路:使用者按下返回鍵時設定一個定時器來監控是否2秒內實現了退出,如果使用者沒有接著按返回鍵,則清除第一次按返回鍵的效果,使程式還原到第一次按下返回鍵之前的狀態。定時器是每次使用者按下返回鍵才去建立。 程式碼如下: /** * 選單、返回鍵響應 */ @Ove

關於Android點選物理返回退出程式的問題

在Android中,今天偶然發現了一個問題,以前在應用主介面經常寫的點選物理返回鍵後,在兩秒內再次點選退出程式程式碼如下: @Override     public boolean onKeyDown(int keyCode, KeyEvent event) {  

Unity 監聽鍵盤 返回退出程式

                 void Update () {   if(Input.

cordova返回退出程式

cordova原始碼中返回鍵已經被WebView處理掉了,所以只能在js中處理返回鍵! 註冊事件監聽,代表性的呼叫document.addEventListener,一旦你註冊了 deviceready事件。 不再需要呼叫任何其他方法來覆蓋theback-button行為。

Android back兩次退出程式 or back相當與Home返回手機主頁

private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (KeyE

Android關於專案中遇到的home退出到桌面,再次開啟重新啟動程式的解決方法

我的專案是使用高德地圖做交通類的,主要是Activity和Fragment之間的切換。 我遇到的問題是:我在執行打包後的apk時,進入程式後,無論在哪個介面按home鍵回到桌面,當再次開啟需要重新啟動而不是回到開啟之前的操作介面;而在程式碼除錯的時候不會出現這種問題。 解決方法:在網上搜了好

微信公眾號WebApp接管返回實現“再一次退出程式”功能

  按微信產品部副總經理張穎“每一個公眾號都是一個APP”的說法,我們確實可以利用微信內建瀏覽器訪問為公眾號設計WebApp單頁應用,以使得客戶在訪問公眾號時有近似原生App的體驗,不過目前這樣的公眾號很少,原因除了使用javascript開發單頁應用的難度比開發一般的We

Android返回後臺程式退出

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // 過濾按鍵動作 if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { mo

Android程式雙擊返回(退出)退出

當用戶點選“退出”按鍵,用 Toast 彈出“再按一 次退出程式”,此時如果使用者在 2 秒內再次點選“退出”按鍵,則程式退出;否則再次 Toast彈出相同提示。  注意:這裡是雙擊返回鍵,而不是雙擊一個自己建立一個叫“退出”的按鈕。 程式碼: private lon

Android 雙擊返回退出APP

private boolean isExit=false;//是否退出APP @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.K

ReactNative Android監聽返回,在某個頁面返回退出應用

在之前專案中,在進行返回鍵退出應用時,應用的程式碼如下: componentWillMount() { if (Platform.OS === 'android') { BackHandler.addEventListener('hardwa

Android開發點選返回退出(出現dialog)

重寫activity的如下方法,使其在點選返回按鈕使彈出是否退出: (注:此方法只針對於只有一個activity的APP,如果存在多個activity可以使用startactivityforresult的處理事件進行,每開啟一個activity均使用startactivi

Android 設定Dialog不允許物理返回退出

有時候需要執行一段耗時任務的時候,需要出現一個等待(就是一個白色小圓環一直轉的那個)Dialog來告訴使用者現在需要等一會,因為在做耗時的事情,可是Dialog可以設定防止點選外面取消Dialog,我忘了物理返回鍵也可以取消Dialog,所以上網查詢資料總結如下。1,直接設定

Android兩次返回退出APP(總結)

//退出時的時間 private long mExitTime; //對返回鍵進行監聽 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent

Androidback退出當前Activity

一般預設情況下,我們按back鍵的時候,會執行Activity的onDestroy方法,銷燬當前例項。 有些情況下,不想銷燬,只是想切換到後臺,即回到桌面程式。那麼有兩種方法可以設定,重寫Activity的onBackPressed()方法,或是重寫onKeyDown方法

android WebView呼叫檔案管理器,點選返回退出app的解決辦法

在清單檔案中,給含有該WebView的activity設定屬性: alwaysRetainTaskState屬性 和 configChanges屬性 這裡,我的是WebActivity: <activity android:name=".activity.We

使用h5+API實現安卓端連兩次返回退出app

實現程式碼如下: (function($, doc) {$.init();$.plusReady(function() {var backButtonPress = 0;$.back = functi