日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android之back键拦截处理

發(fā)布時間:2025/3/11 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android之back键拦截处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文鏈接:http://blog.csdn.net/lyjit/article/details/51597160

----------------------------------------------------

Back鍵是手機(jī)上的后退鍵,在Android上有兩種方法來獲取該按鈕的事件。?
**

一:如何捕獲Back按鍵事件

**

1.直接獲取按鈕按下事件,直接重寫Activity的onKeyDown方法即可,代碼如下:

@Override public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同時沒有重復(fù)Toast.makeText("lyj_test","now_is_back_event",1).show();return true;}return super.onKeyDown(keyCode, event); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2、重寫onBackPressed方法

Android 2.0開始又多出了一種新的方法,對于Activity 可以單獨獲取Back鍵的按下事件,直接重寫onBackPressed方法即可,代碼如下

@Override public void onBackPressed() {// 這里處理邏輯代碼,大家注意:該方法僅適用于2.0或更新版的sdkreturn; }
  • 1
  • 2
  • 3
  • 4
  • 5

**

二:Android home鍵和back鍵區(qū)別

**

back鍵?
Android的程序無需刻意的去退出,當(dāng)你一按下手機(jī)的back鍵的時候,系統(tǒng)會默認(rèn)調(diào)用程序棧中最上層Activity的Destroy()方法來,銷毀當(dāng)前Activity。當(dāng)此Activity又被其它Activity啟動起來的時候,會重新調(diào)用OnCreate()方法進(jìn)行創(chuàng)建,當(dāng)棧中所有Activity都彈出結(jié)束后,應(yīng)用也就隨之結(jié)束了.如果說程序中存在service之類的,則可以在恰當(dāng)?shù)奈恢帽O(jiān)聽處理下也就可以了.

home鍵?
Android程序的隱藏,當(dāng)你按下手機(jī)的Home鍵的時候,系統(tǒng)會默認(rèn)調(diào)用程序棧中最上層Activity的stop()方法,然后整個應(yīng)用程序都會被隱藏起來,當(dāng)你再次點擊手機(jī)桌面上應(yīng)用程序圖標(biāo)時,系統(tǒng)會調(diào)用最上層Activity的OnResume()方法,此時不會重新打開程序,而是直接進(jìn)入,會直接顯示程序棧中最上層的Activity.

back鍵默認(rèn)把當(dāng)前Activity給finish,home鍵只是把Activity給onStop.?
再看一下按HOME和BACK按鍵Activity的生命周期是怎樣的:?
HOME鍵的執(zhí)行順序:onPause->onStop->onRestart->onStart->onResume?
BACK鍵的順序: onPause->onStop->onDestroy->onCreate->onStart->onResume?
onPause不要做太耗時的工作

三:按Back鍵實現(xiàn)按Home鍵時的效果

1:Android 2.0之前需要監(jiān)聽按鍵事件,進(jìn)行判斷是不是按下了back鍵?
2:Android 2.0之后系統(tǒng)提供了一個onBackPressed()方法,這個方法就是專門用來監(jiān)聽back鍵事件的,所以只需重寫onBackPressed()方法即可

@Override public void onBackPressed() { //實現(xiàn)Home鍵效果 //super.onBackPressed();這句話一定要注掉,不然又去調(diào)用默認(rèn)的back處理方式 Intent intent= new Intent(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addCategory(Intent.CATEGORY_HOME); startActivity(intent); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

另外,如果想退出應(yīng)用程序的話,可以自己寫個方法,如下:

public void exitProgrames(){ Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); android.os.Process.killProcess(android.os.Process.myPid()); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

總結(jié)

以上是生活随笔為你收集整理的Android之back键拦截处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。