web-dev-qa-db-ja.com

Android.intent.action.MAINの意味は何ですか?

私は非常に多くの異なる混乱する説明を見てきました。

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

の意味は何ですか

<action Android:name="Android.intent.action.MAIN" />

そして

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

そして

 <category Android:name="Android.intent.category.DEFAULT" />
70
Gero

Android.intent.action.MAINは、このアクティビティがアプリケーションのエントリポイントであることを意味します。つまり、アプリケーションを起動すると、このアクティビティが作成されます。

docs から

ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.

また、 here から

アクティビティアクションはメインエントリポイントとして開始し、データの受信は想定していません。

Android.intent.category.DEFAULTは主に暗黙的なインテントに使用されます。暗黙的な意図によってアクティビティを開始する場合は、このカテゴリをフィルタに含める必要があります。特定のカテゴリが割り当てられていないときに暗黙のインテントによってアクティビティが開始される可能性がある場合、そのインテントフィルタにはこのカテゴリを含める必要があります。

Android.intent.category.LAUNCHER

category-実行するアクションに関する追加情報を提供します。

CATEGORY_LAUNCHERは、ランチャーにトップレベルのアプリケーションとして表示されることを意味します

ドキュメントを参照してください。

  1. http://developer.Android.com/reference/Android/content/Intent.html
  2. http://developer.Android.com/guide/topics/manifest/action-element.html
63
Lal

ACTION_MAINは、アプリケーションのエントリポイントと見なされます。通常、CATEGORY_LAUNCHER内の<intent-filter>と組み合わせて、ホーム画面のランチャー、またはそれ自体がランチャーであると見なされるその他のアクティビティに表示されるアクティビティを示します。このような「ランチャー」は、queryIntentActivities()を使用してPackageManagerを照会し、そのようなアクティビティを見つけてユーザーに表示できます。

ただし、ACTION_MAINは、他の特別な目的のために他のカテゴリと組み合わせて使用​​できます。たとえば、CATEGORY_CAR_DOCK付きのACTION_MAINは、ユーザーが携帯電話をメーカー提供の車のドックに落としたときに表示される候補と見なされるアクティビティを示します。

IntentstartActivity()とともに使用する場合、Intentがまだカテゴリに配置されていない場合は、CATEGORY_DEFAULTに配置されます。したがって、<activity><intent-filter>は、some<category>を指定する必要があり、他に何もない場合は<category Android:name="Android.intent.category.DEFAULT" />を使用します。

83
CommonsWare
<action Android:name="Android.intent.action.MAIN"/>

このアプリケーションの主なアクティビティは

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

これは、ランチャーカテゴリにあります。つまり、ホーム画面など、自分自身を「ランチャー」と見なすものすべてにアイコンが表示されます。

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

他のカテゴリが指定されていない場合、startActivity()の呼び出しは常にDEFAULTカテゴリを追加します。

他のカテゴリがある場合でも、一般的にAndroid.intent.category.DEFAULTを追加するだけです。これにより、startActivity(intent)、受信アクティビティもそれらのインテントを受信できます。

出典:Android開発のビジーコーダーガイド

https://commonsware.com/Android/

0
Shubham Soni