Android APP 退出方法

來源:互聯網
上載者:User

標籤:

Android 項目常見的退出方式有兩種一種是彈出dialog對話方塊提示使用者退出應用,下面就兩種實現形式有示列代碼可以參考:

第一種彈出dialog樣式退出方式:

1.第一步首先要監測使用者是否按下back鍵,就要重寫onKeyDown()

2.構建dialog

主要代碼如下:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (event != null && keyCode == event.KEYCODE_BACK) {
            alertDialog();
        }
        return false;
    }
    
    private void alertDialog(){
        CharSequence charTitle = "退出";
        CharSequence charMessage = "您確定退出嗎?";
        CharSequence [] charSequence = new CharSequence[]{"確定","取消"};
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(mActivity)
        .setIcon(R.drawable.ic_launcher)//設定頭部圖片
        .setTitle(charTitle)//設定標題
        .setMessage(charMessage)//設定提示內容
        .setPositiveButton(charSequence[0], new DialogInterface.OnClickListener() {//確定按鈕監聽
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                /**
                 * 可添加項目處理邏輯
                 */
                
                mActivity.finish();
            }
        })
        .setNegativeButton(charSequence[1], new DialogInterface.OnClickListener() {//取消按鈕監聽
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                
                
            }
        });
        alertDialog.show();
        
    }

效果如下:

第二種雙擊兩次back鍵退出樣式

主要代碼如下:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (event != null && keyCode == event.KEYCODE_BACK) {
            exitApp();
        }
        return false;
    }

/**
     * 雙擊退出應用
     */
    private boolean isExit = false;
    private void exitApp(){
        if (isExit == false) {
            isExit = true;
            Toast.makeText(mActivity, "再按一下退出", Toast.LENGTH_LONG).show();
            Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                
                @Override
                public void run() {
                    isExit = false;
                }
            }, 2000);
        }else{
            mActivity.finish();
        }
        
    }

如下:

另一種實現方式:

@Override
    public void onBackPressed() {
        if(backToFinish())finish();
    }

/**
     * 雙擊退出
     */
    private int BACK = 0;
    private boolean backToFinish(){
        if(BACK==0){
            BACK++;
            Toast.makeText(mActivity,"再按一次退出", Toast.LENGTH_SHORT).show();
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1500);
                        BACK--;
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }).start();
            return false;
        }else if(BACK==1){
            return true;
        }
        return true;
    }

內容很簡單,希望對你有所協助!

Android APP 退出方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.