您好,登錄后才能下訂單哦!
在智能手機飛速發展的今天,安卓有著舉足輕重的地位。虛擬按鍵的設置,也大大提高了用戶體驗。虛擬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為了迎合人們的使用習慣,才設置的這個假象。要想實現真正的退出,需要在手機進程中將該應用對應的進程關掉,這才是真正實現了退出。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。