티스토리 뷰
Explicit(명시적) intent?
활성화할 패키지명과 component 명을 정확히(명시적) 지칭하여 component 를 활성화.
일반적으로 본인의 앱 안에서 구성 요소를 시작할 때 쓰임.
(시작하고자 하는 액티비티 또는 서비스의 클래스 이름을 알고 있기 때문)
예를 들어, 사용자 작업에 응답하여 새 액티비티를 시작하거나 백그라운드에서 파일을 다운로드하기 위해 서비스를 시작하는 것 등이 여기에 해당.
Explicit intent 로 외부 패키지 활성화
아래와 같이 서로 다른 패키지의 activity 를 활성화 할 때 쓰임.
- com.parkho.intent1 패키지에서 com.parkho.intent2 의 TestActivity 를 실행
만약, 해당 option 이 없었다면 아무 패키지의 activity, service 를 임의로 실행시킬 수 있기 때문에 보안상 매우 취약하게 된다. (은행 관련 패키지 component 를 마음대로 실행할 수 있다고 생각해 보자!)
- "android:exported" option 을 true 로 하지 않고 호출하면 SecurityException 이 발생한다.
Explicit intent 전달
◼ Intent extra
Bundle 을 이용하여 intent 객체에 data 를 첨부할 수 있다.
첨부할 수 있는 data type 은 매우 다양하며 HashMap 을 이용한다.
보낼때 | 받을때 | Data type |
intent.putExtra("bool_data", true); | intent.getBooleanExtra("bool_data", false); | boolean |
intent.putExtra("int_data", 7); | intent.getIntExtra("int_data", 0); | integer |
intent.putExtra("string_data", "parkho"); | intent.getStringExtra("string_data"); | String |
◼ Intent data
Intent extra 가 data 자체를 전달한다면 intent data 는 URI 를 이용하여 데이터가 존재하는 위치 정보를 전달한다.
- URI (Uniform Resource Identifiers) : 자원을 나타내는 유일한 주소.
데이터 전달 시 용량이 클 경우(1M 가 넘는 데이터) intent extra 를 이용하는 것 보다 intent data 를 이용하는게 효율적이다.
◼ Intent data type
Intent data 전달 시 URI 의 data type(MIME type) 을 명시.
Data type 을 명시하여 intent 를 수신측에서 필요에따라 해당 type 에 맞는 루틴을 처리할 수 있도록 도와준다.
일반적으로 intent data 와 같이 사용하지만 type 만 명시할 수 있다.
Code
1. FirstActivity
2. SecondActivity
3 Manifest
위 예제는 하단 link 에서 확인할 수 있다.
https://github.com/parkho79/IntentSample
'Android > Intent' 카테고리의 다른 글
Intent 이미지 이동 (0) | 2019.03.20 |
---|---|
Intent extras size limit (0) | 2019.03.20 |
Intent (4) - Pending(보류) intent (0) | 2019.02.19 |
Intent (3) - Implicit(암시적) intent (0) | 2019.02.19 |
Intent (1) (0) | 2019.02.18 |
- Total
- Today
- Yesterday
- 안드로이드 서비스
- StringUtils
- WEMIX
- notifyDataSetChanged
- bindservice
- StartService
- RoomDatabase
- 무료 채굴
- onContextItemSelected
- mPANDO
- task
- android intent
- android activity flag
- 리워드앱
- task 생성
- p2e
- android flag activity
- 앱테크 추천
- 앱테크
- M2E
- 리워드 어플
- 안드로이드 인텐트
- android task
- 채굴앱
- Intent
- 무료채굴
- onCreateContextMenu
- Android Service
- BroadcastReceiver
- registerForContextMenu
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |