web-dev-qa-db-ja.com

カテゴリHOMEが必要なのはなぜですか?

アプリケーションマニフェストファイルで次のカテゴリを定義しています。

<intent-filter>
   <action Android:name="Android.intent.action.MAIN" />
   <category Android:name="Android.intent.category.HOME"/>
   <category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>

行を削除した場合-

<category Android:name="Android.intent.category.HOME"/>

アプリケーションの機能には影響せず、Androidデバイスのホーム画面ランチャーリストにアプリケーションが表示されます。

ただし、最後の行を削除すると-

<category Android:name="Android.intent.category.LAUNCHER" />

Androidデバイスのホーム画面ランチャーリストからアプリケーションが消えるという変更が表示されます。

だから私の質問は、このカテゴリHOMEの目的は何ですか、そしてその一般的な使用法は何ですか。

このカテゴリの唯一の目的が Android docs で説明されているようにホーム画面を起動することである場合、これは次の方法でも実行できます。

Intent homeIntent= new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory(Intent.CATEGORY_HOME);
homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(homeIntent);
12
My God
 <category Android:name="Android.intent.category.HOME"/>

ホームボタンを押すと、アプリがランチャーホームまたはホームアクティビティを起動するオプションとして一覧表示されることを示します(アクティビティのマニフェストにこのカテゴリがあるすべてのアプリケーションとともに)。より簡単に言うと、ホームボタンを押すたびに、AndroidManifest.xmlのintent-filterにCATEGORY.HOMEカテゴリとAction_Mainがある、電話にインストールされているすべてのアプリケーションが一覧表示されます(デフォルトとしてアプリケーションを選択した場合を除く)。ユーザーが起動するHOMEを選択するためのチューザー。

23
user936414