android.intent.category.DEFAULT
의도 필터의 범주 필드에서 사용하는 목적은 무엇입니까 ?
android.intent.category.DEFAULT
의도 필터의 범주 필드에서 사용하는 목적은 무엇입니까 ?
답변:
범주는 암시 적 인 텐트에 사용됩니다. 따라서 활동에 다른 특정 범주가 할당되지 않은 경우 암시 적 의도로 활동을 시작할 수있는 경우 활동의 의도 필터에이 범주가 포함되어야합니다. (인 텐트 필터에 다른 카테고리가있는 경우에도). 활동 이 다른 카테고리로 호출 되어야 한다고 확신하는 경우 기본값을 사용하지 마십시오.
카테고리를 기본값으로 설정한다고해서 앱이 시작될 때이 활동이 기본적으로 사용된다는 의미는 아닙니다. 활동은 "해당 시스템을 말한다 스타터 의도의 범주로 설정되어있는 경우에도 오 내가 시작 할 수 아무것도 전혀! "
이 카테고리는 주로 암시 적 의도에 사용됩니다. 암시 적 인 텐트로 활동을 시작하려는 경우 필터에이 카테고리를 포함해야합니다.
"기본"이라는 용어는 "기본 후보 " 로 이해되어야한다고 생각합니다 . 데이터에 대한 작업이 여러 활동으로 해결되면 Android는 모든 후보를 사용자에게 제공하고 사용자는 선호하는 기본값을 선택할 수 있습니다.
참고:
http://developer.android.com/guide/components/intents-filters.html
해당 페이지에서 추출 :
Android는 startActivity ()에 전달 된 모든 암시 적 인 텐트가 하나 이상의 카테고리 인 "android.intent.category.DEFAULT"(CATEGORY_DEFAULT 상수)를 포함하는 것처럼 처리합니다. 따라서 암시 적 인 텐트를 수신하려는 활동은 인 텐트 필터에 'android.intent.category.DEFAULT'를 포함해야합니다. ( 'android.intent.action.MAIN'및 'android.intent.category.LAUNCHER'설정이있는 필터는 예외입니다. 새 작업을 시작하고 런처 화면에 표시되는 활동을 표시합니다. 여기에는 'android.intent .category.DEFAULT '가 카테고리 목록에 있지만 반드시 그럴 필요는 없습니다.)
실제로 앱이 실행 중일 때 다른 활동을 호출 할 수 있는지 확인하는 것입니다. LAUNCHER는 시작하는 첫 번째 활동이있는 활동을 만듭니다. 인 텐트를 사용하여 다른 활동으로 이동하려면 DEFAULT를 입력하여 "실제"활동으로 나열해야합니다. 그것은 내가 아는 것이므로 잘못된 경우 인용하지 마십시오.
일부 작업을 기본 작업으로 선언하는 데 사용됩니다 (이름에서 알 수 있듯이). 메모장 앱 (Android 메모장 샘플 참조)이 있다고 가정 해 보겠습니다. 앱의 첫 페이지는 모든 메모장 파일 목록으로 구성됩니다. 하나의 메모장 파일을 선택하면 메모 편집, 메모 삭제 등의 작업 중 하나를 수행 할 수 있습니다. 하지만 편집을 기본 동작으로하고 싶습니다. 즉, 키패드의 가운데 버튼을 누르면 편집 창이 열려야합니다.
https://developer.android.com/guide/components/intents-filters
암시 적 인 텐트를 수신하려면 인 텐트 필터에 CATEGORY_DEFAULT 카테고리를 포함해야합니다. startActivity () 및 startActivityForResult () 메소드는 모든 인 텐트를 CATEGORY_DEFAULT 카테고리를 선언 한 것처럼 처리합니다. 인 텐트 필터에서이 카테고리를 선언하지 않으면 암시 적 인 텐트가 활동으로 해석되지 않습니다.
범주:
android.intent.category.DEFAULT
암시 적 의도와 일치합니다. 암시 적 인 텐트를 받으려면 활동에이 카테고리가 포함되어야합니다.