여러 가지 혼란스러운 설명을 많이 보았습니다 ..
<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" />
답변
android.intent.action.MAIN
이 활동은 애플리케이션의 진입 점임을 의미합니다. 즉, 애플리케이션을 시작할 때이 활동이 생성됩니다.
로부터 문서
ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
또한 여기에서
활동 조치 기본 진입 점으로 시작하고 데이터를받을 것으로 예상하지 않습니다.
android.intent.category.DEFAULT 는 주로 암시 적 인 텐트에 사용됩니다. 암시 적 인 텐트로 활동을 시작하려는 경우 필터에이 카테고리를 포함해야합니다. 특정 카테고리가 할당되지 않은 경우 암시 적 인 텐트로 활동이 시작될 수있는 경우 인 텐트 필터에이 카테고리가 포함되어야합니다.
android.intent.category.LAUNCHER
category-실행할 작업에 대한 추가 정보를 제공합니다.
CATEGORY_LAUNCHER
런처에 최상위 애플리케이션으로 표시되어야 함을 의미합니다.
문서를 참조하십시오 ..
답변
ACTION_MAIN
응용 프로그램의 진입 점으로 간주됩니다. 일반적으로 CATEGORY_LAUNCHER
in 과 결합 <intent-filter>
하여 홈 화면의 실행기 또는 실행기로 간주되는 다른 모든 활동에 표시되어야합니다. 이러한 “실행기”는를 PackageManager
사용 하여을 (를) 쿼리 하여 queryIntentActivities()
이러한 활동을 찾고 사용자에게 표시 할 수 있습니다.
그러나 ACTION_MAIN
다른 특수 목적을 위해 다른 범주와 함께 사용할 수 있습니다. 예를 들어 CATEGORY_CAR_DOCK
with ACTION_MAIN
는 사용자가 휴대 전화를 제조업체에서 제공 한 자동차 도크에 떨어 뜨렸을 때 표시 될 후보로 간주되어야하는 활동을 나타냅니다.
이 경우 Intent
에 사용되는 startActivity()
이 경우, Intent
이미 카테고리에 배치되지 않고, 그것으로 배치된다 CATEGORY_DEFAULT
. 따라서는 다른 것이 없으면 사용하여 some<activity>
<intent-filter>
을 지정해야합니다 . <category>
<category android:name="android.intent.category.DEFAULT" />
답변
<action android:name="android.intent.action.MAIN"/>
이 애플리케이션의 주요 활동입니다.
<category android:name="android.intent.category.LAUNCHER" />
LAUNCHER 카테고리에 속합니다. 즉, 홈 화면과 같이 “런처”로 생각되는 모든 항목에 아이콘이 표시됩니다.
<category android:name="android.intent.category.DEFAULT" />
startActivity ()에 대한 호출은 다른 범주가 지정되지 않은 경우 항상 DEFAULT 범주를 추가합니다.
일반적으로 android.intent.category.DEFAULT
다른 카테고리가 있어도 추가하십시오 . 이렇게하면 인 텐트 요청이를 사용하여 startActivity(intent)
인 텐트를 시작하는 동안 카테고리를 제공하지 않으면 수신 활동도 해당 인 텐트를 수신 할 수 있습니다.
출처 : Android 개발을위한 Busy Coders 가이드