2010-05-02 72 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);