溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

安卓應用退出的實現(xiàn)

發(fā)布時間:2020-07-31 11:45:10 來源:網(wǎng)絡 閱讀:596 作者:mm984275894 欄目:開發(fā)技術

在智能手機飛速發(fā)展的今天,安卓有著舉足輕重的地位。虛擬按鍵的設置,也大大提高了用戶體驗。虛擬back鍵的設置,也取代了物理鍵盤的使用。不過凡事總有利弊,虛擬鍵的設計雖然提高了用戶體驗,但也存在按錯的誤操作。在進入應用的第一個界面,點擊back鍵,就可能會導致程序退出了。在這里,就拿常用app對此情況做出的優(yōu)化來說好了。

當在進入應用的第一個界面上,點擊了虛擬按鍵back時,一般有兩種比較常用的方式來進行提示

1)用彈出對話框顯示,點擊確定實現(xiàn)退出,點擊取消就不退出

2)用Toast顯示:“再按一次back鍵退出程序”,馬上點擊實現(xiàn)退出程序;如果過段時間再點擊back鍵的話,又會顯示“再按一次back鍵退出程序”


對于第一種退出方式:

1)重寫onKeyDown方法,監(jiān)聽back點擊事件

2) 設置彈出對話

protected Dialog onCreateDialog(int id)

{

return new AlertDialog.Builder(this).setTitle("退出")

.setMessage("是否退出?")

.setPositiveButton("確定", new DialogInterface.OnClickListener()

{

@Override

public void onClick(DialogInterface dialog, int which)

{

finish();

}

}).setNegativeButton("取消", null).create();

}

3)實現(xiàn)showDialog(id);方法;其中id為int類型,用戶區(qū)分不同的對話框,這里只有一個對話框,所以這個id隨意。


對于第二種方法:

我們這邊先來分析一下:點擊back鍵,toast提示“再按一次back鍵退出程序”,馬上再按back鍵則實現(xiàn)退出,如果過了一段時間再按back鍵則又是用toast提示“再按一次back鍵退出程序”。所以我們可以設定一個標示,用于判斷用戶是不是第一次點擊back鍵,并且這個標示也給它設定一個時效性,只有在這個時間范圍內(nèi)再點擊才會實現(xiàn)退出,超出這個時間再點擊就彈出toast進行再次提示。具體方法如下:

1) 設定一個全局變量的標示:private boolean hasPressedBack;

2)重寫onKeyDown方法,監(jiān)聽back點擊事件

3) 為這個全局變量標示設定時效性,代碼如下:

public boolean onKeyDown(int keyCode, KeyEvent event)

{

switch (keyCode)

{

case KeyEvent.KEYCODE_BACK:

if (!hasPressedBack)

{

// 第一次按

hasPressedBack = true;

Toast.makeText(MainActivity.this, "再按一次back退出", Toast.LENGTH_SHORT).show();

mHandler.postDelayed(new Runnable()

{

@Override

public void run()

{

hasPressedBack = false;

}

}, 3000);//用來設定全局變量標示的時效性

//這邊是3秒后失效

return true;

}

break;

default:

break;

}

return super.onKeyDown(keyCode, event);

}



其實這樣實現(xiàn)的退出并不是真正的退出,它只是一個假象,一個給人感覺它已經(jīng)關閉了,并且不會再運行的假象,不會再占手機或是設備內(nèi)存的假象。

其實這是因為智能手機的用戶都是從PC機過渡而來的,都覺得應用只有關閉了才不會再占用資源,所以android為了迎合人們的使用習慣,才設置的這個假象。要想實現(xiàn)真正的退出,需要在手機進程中將該應用對應的進程關掉,這才是真正實現(xiàn)了退出。

附件:http://down.51cto.com/data/2363614
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI