암시적, 명시적 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()로 지정된 클 래스가 항상 실행된다라고 이해하면 무리가 없을 것 같습니다.

    참고

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)