如何在Android中以编程方式启动主屏幕

时间:2011-01-21 08:40:01

标签: java android homescreen

我想用我的应用程序启动Android的主屏幕。主要目标是在用户按下专用键时向用户显示所有应用。实际上,这种方式并不重要。有没有想过这样做?

9 个答案:

答案 0 :(得分:54)

以下是启动HomeActivity的代码

        Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);

答案 1 :(得分:10)

您对某些答案所做的评论表明您确实想要启动Launcher(如果是这种情况,您可能需要更新标题)。为此,请使用相同的方法Anand启动家庭活动。

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_LAUNCHER);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

答案 2 :(得分:5)

Android中没有“向用户显示带有图标的应用的屏幕”。

你在想什么是一些主屏幕的功能。没有标准化的Intent来触发此显示,并且主屏幕不需要具有此功能。

欢迎您自己写。 Here is a sample projectListView显示可启动活动。

答案 3 :(得分:4)

尝试这样的事情,点击后退按钮任何你将转到主屏幕/...

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // Display confirmation here, finish() activity.
        Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

答案 4 :(得分:1)

我不确定我是否完全理解你要做的事情! 但是,如果您的意思是希望用户能够通过单击您的应用程序来使用其他应用程序,那么您应该检查“意图”。 在eclipse中运行 API DEMO示例代码,然后运行App - >意图

答案 5 :(得分:1)

我觉得我参加聚会很晚,但我也有类似的担忧。这里给出的答案启动了一个选择菜单,允许您选择启动器。如果您的代码中有多个启动器,那么答案就是:https://stackoverflow.com/a/8666155可能会有所帮助。 直接会启动Android的默认主屏幕。

答案 6 :(得分:1)

这里没有一个解决方案适合我......

我使用下面的代码

让它工作
PackageManager pm = getPackageManager();
Intent i = new Intent("android.intent.action.MAIN");
i.addCategory("android.intent.category.HOME");
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
if (lst != null) {
   for (ResolveInfo resolveInfo : lst) {
       try {
       Intent home = new Intent("android.intent.action.MAIN");
       home.addCategory("android.intent.category.HOME");
       home.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
       startActivity(home);
       break;
       } catch (Throwable t) {
           t.printStackTrace();
       }
   }
}

来自:https://stackoverflow.com/a/16483596/1241783

希望这有助于某人

答案 7 :(得分:0)

我用一行

获得了它
moveTaskToBack(true); //activity.moveTaskToBack(true);

它的行为类似于Home Button

答案 8 :(得分:0)

这对我有用!

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

有人可以解释为什么我们需要这个吗?

startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
不过,这就是我要找的东西

moveTaskToBack(true);