本文實(shí)例講述了Android編程模擬HOME鍵功能的方法。分享給大家供大家參考,具體如下:
做一個(gè)類似于QQ按返回鍵并不銷毀Activity的方法(即不調(diào)用Activity.finish(),系統(tǒng)不調(diào)用 onDestroy),而是類似于按Home鍵,讓Activity類似于“暫停”(即只調(diào)用onPause,onDestroy)。
代碼如下:
public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ Intent intent = new Intent(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 注意 intent.addCategory(Intent.CATEGORY_HOME); this.startActivity(intent); return true; } return super.onKeyDown(keyCode, event);}特別注意:intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 這句,一定要加上,因?yàn)锳ctivity 的 launchMode 默認(rèn)是以 standard 執(zhí)行的,如果不添加這個(gè)標(biāo)記則會(huì)創(chuàng)建新的Activity 并放在與當(dāng)前Activity相同的Task中。以下是 FLAG_ACTIVITY_NEW_TASK 的說明 FLAG_ACTIVITY_NEW_TASK標(biāo)記
當(dāng)傳遞給startActivity()的Intent對象包含F(xiàn)LAG_ACTIVITY_NEW_TASK標(biāo)記時(shí),系統(tǒng)會(huì)為需要啟動(dòng)的 activity尋找與當(dāng)前activity不同的task。如果要啟動(dòng)的activity的affinity屬性與當(dāng)前所有的task的 affinity屬性都不相同,系統(tǒng)會(huì)新建一個(gè)帶那個(gè)affinity屬性的task,并將要啟動(dòng)的activity壓到新建的task棧中;否則將 activity壓入那個(gè)affinity屬性相同的棧中。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選