2010-05-02 82 views
20

我知道在activity中調用finish()將產生與用戶單擊Back按鈕相同的結果; Home按鈕有沒有類似的東西? (想要在特定操作後自動顯示主屏幕)。Android - 模擬主頁點擊

編輯:另外,我將不勝感激菜單&搜索按鈕。

謝謝!

回答

56

你可以簡單地使用,一個意圖:

Intent i = new Intent(Intent.ACTION_MAIN); 
i.addCategory(Intent.CATEGORY_HOME); 
startActivity(i); 
+10

我讀這一個「這是有意圖的」,輕聲笑了一下:) – alexanderblom 2010-05-02 09:40:17

+2

這似乎不適用於API 4(1.6)?沒有Intent.ACTION_HOME ... – kape123 2010-05-05 21:46:51

+1

沒有「Intent.ACTION_HOME」 - 它不存在。根據http://developer.android.com/reference/android/content/Intent.html它應該是: 「與類別CATEGORY_HOME ACTION_MAIN - 啓動主屏幕 – mishkin 2010-11-16 01:18:30

7

HOME:

 
Intent showOptions = new Intent(Intent.ACTION_MAIN); 
showOptions.addCategory(Intent.CATEGORY_HOME); 
startActivity(showOptions); 

MENU:

 
openOptionsMenu(); 
// this won't work from onCreate 
// if anyone has idea how it would work 
// please post it as response 
3
startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME)); 
0

最近的解決方案,以模擬家庭點擊我發現是:

回家按鈕單擊系統日誌:

I/ActivityManager:START U0 {行爲= android.intent.action.MAIN 貓= [android.intent.category.HOME] FLG = 0x10200000 CMP = com.belauncher/.ui.activities.MainActivity(具有額外)}從UID 1000上顯示0

模擬意圖:

Intent i = new Intent(Intent.ACTION_MAIN); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      i.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
      i.addCategory(Intent.CATEGORY_HOME); 
      startActivity(i);