Android之back鍵攔截處理

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

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

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

一:如何捕獲Back按鍵事件

**

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

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同時沒有重復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鍵區別

**

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()方法即可

@Override
public void onBackPressed() { //實現Home鍵效果 //super.onBackPressed();這句話一定要注掉,不然又去調用默認的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

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538370.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538370.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538370.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php富強民主,WordPress主題添加“富強、民主、文明、和諧、”等鼠標點擊特效

打開“外觀-主題-編輯-(最右側)模板-主題頁腳 (footer.php)”加入以下代碼/* 鼠標特效 */var a_idx 0;jQuery(document).ready(function($) {$("body").click(function(e) {var a new Array("富強", "民主", "文明", "和諧&quo…

DjangoAdmin站點調整列表頁展示

調整列表頁展示 1 頁大小 每頁中顯示多少條數據,默認為每頁顯示100條數據,屬性如下: list_per_page1001)打開booktest/admin.py文件,修改AreaAdmin類如下: class BookInfoAdmin(admin.ModelAdmin):list_per…

大華熱成像netsdkdemo_千年博物,智慧展館丨大華股份全力守護“華夏珍寶庫”...

陜西歷史博物館作為我國第一座大型現代化國家級博物館,以及首批國家一級博物館和全國排名前五的國家頂級博物館,被譽為“古都明珠 華夏寶庫”,是講述五千年中華文化的大學堂,是我國博物館事業發展的重要里程碑。隨著陜西歷史博物館…

Android中scrollview與webview沖突事件

原文鏈接:http://www.linuxidc.com/Linux/2014-03/98847.htm -------------------------------------------------------------- 在做更新界面的時候,同時使用了scrollview和webview兩個組件。在模擬器中測試的時候沒有問題,但是在手機上測試…

最新php常用函數200個,180多個PHP常用函數總結

我們知道任何有效的 php 代碼都有可能出現在函數內部,甚至包括其它函數和類定義。本文我們主要和大家分享180多個PHP常用函數總結,希望能幫助大家更高效的學習PHP。數學函數1.abs(): 求絕對值$abs abs(-4.2); //4.211輸入: 數字輸出: 絕對值數字2.ceil(…

Markdown 使用教程

前言 以前經常在 github 中看到 .md 格式的文件,一直沒有注意,也不明白為什么文本文檔的后綴不是 .txt ,后來無意中看到了 Markdown,看到了用這個東西寫得一些web界面等特別的規整漂亮,頓時不明覺厲。后來自己學習了一下&#xff…

wdm設備驅動程序開發pdf_DWDM是什么 DWDM相關設備功能介紹【圖文】

WDM/DWDM技術,什么是WDM/DWDM技術波分復用(WDM)是將兩種或多種不同波長的光載波信號(攜帶各種信息)在發送端經復用器(亦稱合波器,Multiplexer)匯合在一起,并耦合到光線路的同一根光纖中進行傳輸的技術;在接收端,經解復用器(亦稱分波器或稱去復…

Android 獲取CellId以及IMEI 獲取基站id

private void setCellIdentity() {if (isMobileConnected(this)) {System.out.println("基站已連接");int cellid0;TelephonyManager tel (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);CellLocation cel tel.getCellLocation();//移動聯通 GsmC…

團隊作業8—團隊項目用戶驗收評審

一、源代碼管理的10 個實踐問題: 1. 你的團隊的源代碼控制在哪里?用的是什么系統?如何處理文件的鎖定問題? 我們團隊項目的源代碼在GitHub上托管,用git控制代碼版本,我們用的是win10系統。在這個項目上&…

Android中已經添加權限,依然提示缺少權限,此時你需要添加動態權限

原文鏈接:http://blog.csdn.net/android_hdh/article/details/52583557 ------------------------------- 最近在開發項目時,項目需要獲取系統的WRITE_EXTERNAL_STORAGE權限,然后就在清單文件AndroidManifest中添加了該權限,但是…

linux php任務計劃,linux系統怎么添加計劃任務執行php文件

linux系統怎么添加計劃任務執行php文件linux系統怎么添加計劃任務執行php文件?PHP不支持多線程,有時候處理問題不是那么爽,小編以php文件為例,講解linux下的計劃任務。linux系統添加計劃任務執行php文件方法1.打開linux系統命令行界面。在命令行界面中輸入如下命令…

windows server 2008 r2 定時關機_電腦怎么定時關機 秒懂的Win10定時關機命令使用方法...

Win10怎么定時關機?今天芝麻科技網教大家3種Win10定時關機方法,包含用命令定時關機、軟件以及殺毒工具定時關機等,也適合XP、Win7和Win8等系統,相信對于一些如夜間下載東西或者大文件,掛機等用戶有所幫助。方法一&…

Android-循環訪問網站App

網優同事的突然需求。 花了1天開發了出來。 App截圖 App操作流程 1、賦值要循環訪問網站的地址 2、設置每次循環間隔時間和每次訪問間隔時間 3、點擊按鈕開始訪問 下載地址:https://download.csdn.net/download/zengmingen/9983519

與專門團隊一起持續交付

BCG Digital Ventures的首席工程師Robin Weston 最近在倫敦持續生命周期大會(Continuous Lifecycle London)上發布了一份經驗報告,在該報告中稱,外部支持團隊能夠在難以實施變化的組織和封閉的團隊中引入持續交付(CD)實踐。該團隊…

windows版一鍵繞id工具_Windows免費版一鍵繞過IOS13.6激活鎖工具XgRiNdA,完美重啟!...

支持iOS13.6.1系統,支持iPhone、iPad繞過,支持MEID三網、兩網GSM機器,只要一鍵就可以繞過,可以完美關機重啟,并且支持iTunes同步、愛思安裝軟件。新版本:增加屏幕鎖/停用繞過解信號功能、新增12.4~13.2.3繞…

php程序員需要學c語言嗎,程序員為什么需要學會C語言

一轉眼轉行做程序員已經快三年了,剛開始覺得這是個技術活,現在仔細想想每天的工作,好像大多數情況都是在復制粘貼。這不禁讓我陷入了恐懼之中,重新思考要突破現有的狀況。前兩年聽說iOS開發使用swift語言開發簡單,我就…

Could not find artifact

用Maven install 對父工程安裝到本地倉庫

uart怎么判斷幀錯誤_UART通訊總線工作原理的理解

奧的斯電梯OCSS/LCBII /TCBC/GECB板與電梯轎廂和電梯井道之間的串行通訊采用了UART通訊,將井道和轎廂的輸入、輸出和開關部件的信號轉換成串行通訊信號傳輸給電梯操作控制系統,大大節省了現場布線,下面就UART通訊總線工作原理的理解予以描述。…

Laravel核心代碼學習--用戶認證系統的實現細節

用戶認證系統的實現細節 上一節我們介紹了Laravel Auth系統的基礎知識,說了他的核心組件都有哪些構成,這一節我們會專注Laravel Auth系統的實現細節,主要關注Auth也就是AuthManager是如何裝載認證用的看守器(Guard)和用戶提供器(UserProvider…

matlab 光譜噪聲,環境小衛星高光譜影像條紋噪聲去除程序IDL版

前言源代碼PRO stripe_remove1ENVI,/Restore_Base_Save_FilesENVI_Batch_initfile DIALOG_PICKFILE(/READ, FILTER *.img)print,fileENVI_OPEN_FILE,file,r_fidfidENVI_FILE_QUERY, fid, dimsdims, nsns, nlnl, nbnbprint,fid,dims,ns,nl,nbfdata fltarr(ns,nl,nb)datafltar…