23

アプリで Android のホーム画面を起動したい。主な目標は、ユーザーが特殊なキーを押したときにすべてのアプリをユーザーに表示することです。実際、方法は重要ではありません。これを行うアイデアはありますか?

4

9 に答える 9

59

HomeActivity を開始するためのコードは次のとおりです。

        Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);
于 2011-01-21T08:55:51.727 に答える
11

いくつかの回答に対して行ったコメントは、実際にランチャーを起動したいことを示唆しています (その場合は、タイトルを更新することをお勧めします)。これを行うには、Anand がホーム アクティビティを開始するために提案したのと同じアプローチを使用します。

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_LAUNCHER);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
于 2012-02-21T11:45:53.473 に答える
6

Androidには「アプリとそのアイコンをユーザーに表示する画面」はありません。

あなたが考えているのは、いくつかのホーム画面の機能です。これをトリガーするための標準化Intentされたものはなく、ホーム画面にそのような機能がある必要はありません。

あなたはあなた自身を書くことを歓迎します。これは、で起動可能なアクティビティを表示するサンプルプロジェクトListViewです。

于 2011-01-21T12:23:51.910 に答える
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);
}
于 2013-03-20T14:02:37.503 に答える
2

ここでの解決策はどれも私のために働いていません..

以下のコードを使用して動作させました

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

これが誰かを助けることを願っています

于 2013-12-02T13:00:01.237 に答える
1

私はパーティーに非常に遅れていると思いますが、同様の懸念がありました. ここでの回答により、ランチャーを選択できる選択メニューが起動します。コードに複数のランチャーがある場合は、https ://stackoverflow.com/a/8666155 の回答が役立つ場合があります。これにより、Androidのデフォルトのホーム画面が直接起動します。

于 2013-10-24T12:57:02.087 に答える
1

あなたがやろうとしていることを完全に理解しているかどうかはわかりません! ただし、ユーザーがアプリケーション内をクリックして別のアプリケーションにアクセスできるようにする場合は、「意図」を確認する必要があります。Eclipse でAPI DEMO サンプル コードを実行し、App -> Intents を実行します。

于 2011-01-21T08:53:15.423 に答える
1

1行で達成しました

moveTaskToBack(true); //activity.moveTaskToBack(true);

ホームボタンのように動作します

于 2015-08-07T07:44:23.020 に答える
0

これは私にとってうまくいっています!

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

なぜこれが必要なのか誰か説明できますか?

startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

ところで、これは私が探していたものです

moveTaskToBack(true);
于 2015-11-01T19:17:31.870 に答える