암시적, 명시적 Intent 질문 있습니다.
조회수 2558회
명시적 암시적 Intent 사용에 대해 질문 있습니다.
명시적은 Intent 생성시 객체에 대해 명시해주는 것이라고 알고 있고
암시적은 Action 이나 Category 를 이용해 다른 앱을 실행하는 것으로 알고 있습니다.
질문은 암시적 intent에서 setComponent 나 setClassname(Context , className) 를 사용하면 명시적 Intent 가 된다던데데 사실인가요 ?
만약 맞다면 암시적 Intent 에 Component 가 셋팅되면 기존 정보들은 다 무시하게 된다던데 setCategory 나 action 값이 다 사라지는건가요 ?
마지막으로 명시적 Intent 에서 setCategory 하는 경우 동작에 영향이 없는건가요 ?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
1. setComponent() / setClassNamed()로 인텐트를 생성할 경우 이를 명시적 인텐트라고 부르는게 맞습니다. 반대로 action, type, categories와 같은 정보로 인텐트를 생성할 경우, 이 정보를 이용해 적절한 액티비티를 찾는데 이를 암시적(묵시적) 인텐트라고 합니다. 이 때는 컴포넌트 네임이 존재하지 않기 때문에 action, type, categories로 실행할 액티비티를 찾게 됩니다.
2. setComponent()로 값을 설정 할 경, action, type, categories와 같은 값은 의미가 없어집니다. 왜냐하면 어떤 액티비티를 실행할지에 대한 정보가 setComponent()에 담겨져있기 때문입니다. 정리하면 action, category 정보가 설정되어 있더라도 setComponent()로 지정된 클 래스가 항상 실행된다라고 이해하면 무리가 없을 것 같습니다.
참고
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력