1. android:exproted
이 요소는 다른 애플리케이션의 구성요소로 액티비티를 시작할 수 있는지 설정합니다. 할 수 있으면 "true", 할 수 없으면 "false"입니다. "false"인 경우, 해당 액티비티는 같은 애플리케이션의 구성요소 또는 사용자 ID가 같은 애플리케이션으로만 시작할 수 있습니다.
인텐트 필터를 사용하는 경우 이 요소를 "false"로 설정하면 안 됩니다. 이렇게 설정하고 앱이 액티비티를 호출하려 하면 시스템이 ActivityNotFoundException을 발생시킵니다. 대신 이에 대한 인텐트 필터를 설정하지 않아 다른 앱이 이 액티비티를 호출하지 못하게 방지해야 합니다.
인텐트 필터가 없는 경우, 이 요소의 기본값은 "false"입니다. 이 요소를 "true"로 설정하면 이 액티비티는 액티비티의 정확한 클래스 이름을 아는 모든 앱에서 액세스할 수 있지만, 시스템이 암시적 인텐트를 일치시키려 할 때는 확인되지 않습니다.
이 특성 외에도 다른 애플리케이션에 액티비티 노출을 제한하는 방법이 있습니다. 액티비티를 호출할 수 있는 외부 엔터티를 제한하는 권한을 사용할 수도 있습니다(permission 특성 참조).
2.launchMode
액티비티를 시작하는 방법에 대한 지침.
인텐트를 처리하기 위해 액티비티를 호출할 때 발생하는 것을 결정하기 위해 Intent 객체에서 액티비티 플래그(FLAG_ACTIVITY_* 상수)와 함께 작동하는 4개의 모드가 있다.
1) standard - 기본 모드. 시스템이 항상 대상 작업에 새 엑티비티 인스턴스를 생성하고 인텐트를 해당 인스턴스로 라우 팅한다.
2) singleTop - 액티비티의 인스턴스가 이미 대상 작업의 맨 위에 존재하는 겨웅 시스템은 새 액티비티 인스턴스를 생성 하는 대신 onNewIntent()메소드를 호출하여 인텐트를 해당 인스턴스로 라우팅한다.
3) simgleTask - 시스템이 새 작업의 루트에 액티비티를 생성하고 인텐트를 해당 액티비티로 라우팅합니다. 그러나 액티비티 인스턴스가 이미 존재하는 경우 시스템은 새 인스턴스를 생성하는 대신 onNewIntent() 메서드를 호출하여 인텐트를 기존 인스턴스로 라우팅합니다.
4) singleInstance - singleTask"와 동일합니다. 단, 인스턴스가 있는 작업에 대해 시스템이 어떤 액티비티도 시작하지 않은 경우는 예외입니다. 액티비티는 항상 해당 작업의 단일 멤버입니다.
출처 : https://developer.android.com/guide/topics/manifest/activity-element?hl=ko#exported
AndroidX에 대한 정리 및 Jetpack (0) | 2020.07.28 |
---|---|
FileProvider 정리 (0) | 2020.07.24 |