Component
Application의 구성 요소입니다
Manifest 파일에 등록 필수 🔍 시스템에 컴포넌트를 알려야하기 때문에
일반 클래스와의 차이
일반 클래스: 생명주기 관리 개발자 코드
컴포넌트 클래스 : 안드로이드 시스템에서 생명주기 관리
또, 앱 안에서 독립된 실행단위로 이로 인해 안드로이드는 앱 실행 시점이 다양합니다
안드로이드에선 4개의 Component가 존재하는데, 각각 Component들에 알아보겠습니다
생성방법이나 사용법에 대해선 자세히 다루진 않겠습니다 😭
1. Activity
화면을 구성하고 사용자와 상호작용을 담당하는 컴포넌트
2. Broadcast Receiver
시스템에 어떤 이벤트가 발생 (ex.부팅, 배터리상태, 화면 On/Off)하면 실행되는 컴포넌트
Broadcast Receiver를 등록하려면
1) manifest에 선언해서 등록하거나
2) 동적으로 액티비티나 서비스에서 선언 후 registerReceiver()로 시스템에 등록, 해제 시엔 unregisterReceiver 등록 필수
선언 시에는 Broadcast Receiver를 상속받고 onReceive함수를 override해서 작성합니다
실행하려면 sendReceiver를 이용해 인텐트를 시스템에 전달해야합니다
3. Service
백그라운드 작업을 하는 컴포넌트로 , 장시간 실행해야 할 업무를 담당합니다
화면을 구성하진 않습니다
Service를 상속받고 다양한 함수를 override 가능하지만, onBind()는 필수로 구현해야합니다
startService, bindService로 서비스를 실행합니다
Service의 종류
1. Foreground
: 사용자에게 진행상황이 보여줘야하는 경우에 사용
2. Background
: 백그라운드에서 실행되지만, 유저에게 특별히 진행사황을 보여주지 않아도 될 경우에 사용
3. Bound
: 서비스가 bind된 상태 즉. 서비스가 특별한 클라이언트에 결합된 상태를 의미합니다
4. Content Provider
앱 데이터를 공유하는 컴포넌트, 앱 간에 데이터를 공유할 수도 있습니다
필요한 순간 시스템에서 자동으로 생성합니다
Manifest에 등록 시 다른 컴포넌트와 달리 name뿐만 아니라 authorities도 반드시 선언해야합니다
(*authorities : 외부에서 이 content provider 이용 시 식별값으로 사용되는 문자열)
Content Provider를 사용하려면 ContentResolver 객체를 이용합니다
ex) 카톡 프로필 변경 시 갤러리앱의 사진을 이용
틀리거나 궁금하신 점이나 의견이 있으시면 댓글 부탁드립니다 감사합니다 😊
'📱 Android' 카테고리의 다른 글
[Android] RecyclerView - MultiViewHolder(2) (0) | 2022.07.13 |
---|---|
[Android] Fragment LifeCycle (0) | 2022.07.06 |
[Android] Activity LifeCycle 🧐 (0) | 2022.07.03 |
[Android] MVVM 구현하기 (0) | 2022.06.27 |
[Android] Jetpack Architecture #1 DataBinding (0) | 2022.06.05 |