인텐트 - (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 객체로 액션과 결합하여 사용
(Uri는 Uniform Resource Identifier의 약자로, 인터넷에서 리소스를 고유하게 식별하는 방법을 제공합니다. 안드로이드에서는 주로 Uri 클래스를 사용하여 데이터를 식별하고 참조하는 데 사용됩니다.
안드로이드에서 Uri 객체는 다양한 용도로 사용됩니다.
- 컨텐트 프로바이더(Content Provider)에서 데이터를 식별하고 요청하기 위해 사용됩니다. 예를 들어, 주소록, 미디어 파일 등의 데이터에 대한 접근에 Uri를 사용합니다.
- 파일 시스템의 파일을 식별하고 참조하기 위해 사용됩니다. 앱에서 파일에 접근할 때 사용됩니다.
- 웹에서 리소스를 로드하고 표현하기 위해 사용될 수 있습니다. 웹 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 |