歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android中模擬HOME鍵功能

做一個類似於QQ按返回鍵並不銷毀Activity的方法(即不調用Activity.finish(),系統不調用 onDestroy),而是類似於按Home鍵,讓Activity類似於“暫停”(即只調用onPause,onDestroy)。

代碼如下:

  1. public boolean onKeyDown(int keyCode, KeyEvent event) {  
  2.         if(keyCode == KeyEvent.KEYCODE_BACK){  
  3.         Intent intent = new Intent(Intent.ACTION_MAIN);  
  4.         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 注意   
  5.         intent.addCategory(Intent.CATEGORY_HOME);  
  6.         this.startActivity(intent);  
  7.         return true;  
  8.     }  
  9.     return super.onKeyDown(keyCode, event);  
  10. }  

特別注意 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 這句,一定要加上,因為Activity 的 launchMode 默認是以 standard 執行的,如果不添加這個標記則會創建新的Activity 並放在與當前Activity相同的Task中。以下是 FLAG_ACTIVITY_NEW_TASK 的說明 FLAG_ACTIVITY_NEW_TASK標記

當傳遞給startActivity()的Intent對象包含FLAG_ACTIVITY_NEW_TASK標記時,系統會為需要啟動的 activity尋找與當前activity不同的task。如果要啟動的activity的affinity屬性與當前所有的task的 affinity屬性都不相同,系統會新建一個帶那個affinity屬性的task,並將要啟動的activity壓到新建的task棧中;否則將 activity壓入那個affinity屬性相同的棧中。

 

 

Copyright © Linux教程網 All Rights Reserved