인텐트란?

인텐트

  • 액티비티, 서비스 등의 컴포넌트를 실행할 때 사용한다.
  • 클래스나 패키지 이름을 사용하는 명시적 인텐트, 인텐트 필터를 사용하는 암시적 인텐트로 분류된다.

암시적 인텐트

  • 조건을 제시하고, 이를 처리할 수 있는 인텐트를 찾는 방식.
  • 인텐트에 카테고리를 설정하지 않을 경우 기본 값으로 Intent.category.default 가 설정된다1.
  • 처리할 수 있는 인텐트가 없는 경우 ActivityNotFound 예외가 발생한다. (예외 처리 필수)

Ex. 인텐트 필터

<activity
    android:name="com.example.ExampleActivity" >
    <intent-filter android:label="@string/filter_view_example_gizmos">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data
        android:scheme="example"
        android:host="example" />
    </intent-filter>
</activity>

Ex. 인텐트 스킴

val url = "intent://..."
val intent = Intent.parse(url, Intent.URI_INTENT_SCHEME)
startActivity(intent)

1암시적 인텐트를 처리하는 Activity의 경우 인텐트 필터에 intent.category.default를 반드시 추가해야 한다.