인텐트 - (2)

 

1) 명시적 인텐트(Explicit Intent)

특정한 컴포넌트를 직접적으로 호출할 때 사용되는 인텐트 

startActivity() 또는 startService() 메소드를 통해 해당 컴포넌트를 실행한다

  • 앱 내부에서 다른 액티비티나 서비스를 시작할 때 사용

2) 암시적 인텐트(Implicit Intent)

수행하고자 하는 일반적인 작업을 인텐트 객체에 설정하여 startActivity() 메소드에 넘김.

적합한 인텐트 필터를 가진 컴포넌트를 찾아 실행시킨다

  • 인텐트 필터:
    • 특정 인텐트에 반응하는 액티비티, 서비스 또는 브로드캐스트 리시버의 능력을 정의함
    • 인텐트를 나타내는 설정
    • 다른 앱의 컴포넌트를 실행시키는 데 사용. ->사용가능한 앱 모두 표시

3) 인텐트(Intent) 객체 분석하기

실행을 위임하거나 정보를 전달하는 역할

 

1. 컴포넌트 이름 (Component Name)

  • 타겟 컴포넌트의 이름을 명시하여, 인텐트가 전달될 정확한 대상을 지정
  • ex) **new Intent(context, TargetActivity.class)**에서 **TargetActivity.class**가 컴포넌트 이름임
  • 컴포넌트 이름이 없으면, 인텐트는 암시적으로 처리되고, 시스템이 적절한 대상을 찾음

 

2. 액션 (Action)

  • 인텐트가 수행해야 할 일반적인 작업을 정의함
  • ex) **Intent.ACTION_VIEW**는 사용자에게 데이터를 보여줄 때 사용
  • ex) **Intent.ACTION_DIAL**은 전화 다이얼을 열기 위해 사용

 

3. 데이터 (Data)

  • 작업을 수행하는 데 필요한 데이터의 URI를 지정
  • ex) **Uri.parse("tel:12345")**는 전화 앱에 전화번호 데이터를 제공
  • 데이터는 보통 Uri 객체로 액션과 결합하여 사용

(UriUniform Resource Identifier의 약자로, 인터넷에서 리소스를 고유하게 식별하는 방법을 제공합니다. 안드로이드에서는 주로 Uri 클래스를 사용하여 데이터를 식별하고 참조하는 데 사용됩니다.

안드로이드에서 Uri 객체는 다양한 용도로 사용됩니다. 

  1. 컨텐트 프로바이더(Content Provider)에서 데이터를 식별하고 요청하기 위해 사용됩니다. 예를 들어, 주소록, 미디어 파일 등의 데이터에 대한 접근에 Uri를 사용합니다.
  2. 파일 시스템의 파일을 식별하고 참조하기 위해 사용됩니다. 앱에서 파일에 접근할 때 사용됩니다.
  3. 웹에서 리소스를 로드하고 표현하기 위해 사용될 수 있습니다. 웹 URL을 Uri로 변환하여 사용할 수 있습니다.

안드로이드에서는 android.net.Uri 클래스를 사용하여 Uri를 생성하고 관리합니다. 이 클래스에는 데이터의 유형 및 위치를 지정하는 다양한 생성자 및 메서드가 있습니다. Uri는 안드로이드에서 데이터에 효과적으로 액세스하는 데 필수적인 개념입니다.)

 

 
 

4. 카테고리 (Category)

  • 인텐트의 유형을 더 구체적으로 지정하여, 어떤 컴포넌트가 처리할 수 있는지 알려줌
  • 예: **Intent.CATEGORY_HOME**은 홈 화면 애플리케이션을 시작할 때 사용됨

 

5. 엑스트라 (Extras)

  • 복잡한 데이터를 인텐트에 전달하기 위한 키-값 쌍의 추가 정보임
  • 예: **intent.putExtra("extra_key", "value")**에서 **"extra_key"**는 전달할 데이터의 키이며, **"value"**는 실제 값임
  • 엑스트라를 통해 기본 타입부터 Serializable 객체까지 다양한 데이터를 전달할 수 있음

 

'Today I learned > 용어정리' 카테고리의 다른 글

3.3 확장 함수와 확장 프로퍼티  (0) 2024.04.03
추상화  (0) 2024.03.22
인텐트 - (1)  (0) 2024.03.21
Toast  (0) 2024.03.21
스코프 함수  (0) 2024.03.19