투케이2K

420. (android/안드로이드) 명시적 인텐트 (explicit intent) , 암시적 인텐트 (implicit intent) 개념 설명 본문

Android

420. (android/안드로이드) 명시적 인텐트 (explicit intent) , 암시적 인텐트 (implicit intent) 개념 설명

투케이2K 2022. 12. 1. 11:06

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[명시적 인텐트]

1. 명시적 인텐트 란 대상 앱의 패키지 이름 또는 완전히 자격을 갖춘 구성 요소 클래스 이름을 사용해 동작이 수행되는 것 입니다

2. 명시적 인텐트 는 브로드캐스트 알림 이나 액티비티가 명확하게 실행되어야 하는 경우 사용 됩니다

- Android 8.0(API 레벨 26) 백그라운드 실행 제한의 일환으로 API 레벨 26 이상을 타겟팅하는 앱은 암시적 브로드캐스트의 broadcast receiver를 manifest에 더 이상 등록할 수 없습니다 (예외 있음)

- 브로드캐스트 알림을 보내기 위해서는 앱 packageName , Class , addAction 타입을 명시적으로 선언해 줘야 합니다

3. 명시적 인텐트 예시 :

Intent intent = new Intent(getApplication(), second.class);

startActivity(intent);

 

[암시적 인텐트]

1. 암시적 인텐트 란 특정 구성 요소의 이름을 대지 않지만, 그 대신 수행할 일반적인 작업을 선언하여 다른 앱의 구성 요소가 이를 처리할 수 있도록 해주는 것 입니다

2. 암시적 인텐트를 사용하면 Android 시스템에서 시작할 적절한 구성 요소를 찾고, 인텐트의 내용을 기기에 있는 다른 여러 앱의 매니페스트 파일에서 선언된 인텐트 필터와 비교하는 방법을 사용합니다

- URL 스키마 , Uri.parse 외부 링크 이동

3. 암시적 인텐트 예시 :

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com/"));

startActivity(intent);

 
반응형
Comments