中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

安卓應用退出的實現

發布時間:2020-07-31 11:45:10 來源:網絡 閱讀:602 作者:mm984275894 欄目:開發技術

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

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

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

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


對于第一種退出方式:

1)重寫onKeyDown方法,監聽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)實現showDialog(id);方法;其中id為int類型,用戶區分不同的對話框,這里只有一個對話框,所以這個id隨意。


對于第二種方法:

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

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

2)重寫onKeyDown方法,監聽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);

}



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

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

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

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

AI

阿荣旗| 垫江县| 景泰县| 胶南市| 广西| 汉源县| 资源县| 崇阳县| 紫云| 潮州市| 曲阳县| 高台县| 青阳县| 绥德县| 平定县| 衡阳县| 沧州市| 建宁县| 长武县| 漾濞| 澎湖县| 封丘县| 郧西县| 施甸县| 景洪市| 南投县| 罗定市| 新丰县| 万源市| 上思县| 吴川市| 扬中市| 尚义县| 叙永县| 奉新县| 襄城县| 饶阳县| 赤水市| 枝江市| 琼结县| 南昌县|