原文鏈接:http://blog.csdn.net/lyjit/article/details/51597160
----------------------------------------------------
Back鍵是手機上的后退鍵,在Android上有兩種方法來獲取該按鈕的事件。?
**
一:如何捕獲Back按鍵事件
**
1.直接獲取按鈕按下事件,直接重寫Activity的onKeyDown方法即可,代碼如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2、重寫onBackPressed方法
Android 2.0開始又多出了一種新的方法,對于Activity 可以單獨獲取Back鍵的按下事件,直接重寫onBackPressed方法即可,代碼如下
- 1
- 2
- 3
- 4
- 5
**
二:Android home鍵和back鍵區別
**
back鍵?
Android的程序無需刻意的去退出,當你一按下手機的back鍵的時候,系統會默認調用程序棧中最上層Activity的Destroy()方法來,銷毀當前Activity。當此Activity又被其它Activity啟動起來的時候,會重新調用OnCreate()方法進行創建,當棧中所有Activity都彈出結束后,應用也就隨之結束了.如果說程序中存在service之類的,則可以在恰當的位置監聽處理下也就可以了.
home鍵?
Android程序的隱藏,當你按下手機的Home鍵的時候,系統會默認調用程序棧中最上層Activity的stop()方法,然后整個應用程序都會被隱藏起來,當你再次點擊手機桌面上應用程序圖標時,系統會調用最上層Activity的OnResume()方法,此時不會重新打開程序,而是直接進入,會直接顯示程序棧中最上層的Activity.
back鍵默認把當前Activity給finish,home鍵只是把Activity給onStop.?
再看一下按HOME和BACK按鍵Activity的生命周期是怎樣的:?
HOME鍵的執行順序:onPause->onStop->onRestart->onStart->onResume?
BACK鍵的順序: onPause->onStop->onDestroy->onCreate->onStart->onResume?
onPause不要做太耗時的工作
三:按Back鍵實現按Home鍵時的效果
1:Android 2.0之前需要監聽按鍵事件,進行判斷是不是按下了back鍵?
2:Android 2.0之后系統提供了一個onBackPressed()方法,這個方法就是專門用來監聽back鍵事件的,所以只需重寫onBackPressed()方法即可
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
另外,如果想退出應用程序的話,可以自己寫個方法,如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7