android

안드로이드 서비스 4가지 주요 컴포넌트

junmong 2020. 3. 6. 17:41

1.Service - 2.Activity - 3.Content Provider - 4.Broadcast Receiver

 

1 Service 

- 눈에 보이는 요소들은 없는 백그라운드 작업을 의미한다.

- UI를 제공하지 않음.

- 백그라운드에서 데이터 로딩과 처리가 유용하다.

- 앱이 비활성화 되어도 작업은 계속된다.

ex) 이메일,메세지,캘린더 알람 등 , 앱이 닫혀있을 때도 받게되는데 이것은 백그라운드 서비스이다 ,

우리가 이메일을 보내고 메일앱을 빠져나가면 서비스가 책임지고 메시지 전송을 완료한다

 

요약 -

처리 또는 로딩할 데이터가 UI에 사용된다면 로더를 사용한다 , 데이터 작업의 최종 결과가 직접 UI에 영향을 주지 않는 경우

서비스 사용.  ex) DB의 데이터를 캐시하는 작업과 같은 경우에는 서비스를 사용한다.

서비스는 데이터 처리,다운로드,업로드 등을 수행하면서 백그라운드에 존재한다.

 

2 Activity

- UI 화면을 담당한다.

- Activity 클래스를 상속해야한다.

- 하나 이상의 Activity를 가지고 있어야한다.

- 두개의 액티비티를 동시에 Display 할 수 없다.

- 액티비티 내에는 프래그먼트를 추가하여 화면을 분할시킬 수 있다.

- 액티비티가 기본적으로 가지고 있는 생명주기 메소드를 재정의하여 원하는 기능을 구현하는 방식으로 만든다

 

3 Content Provider

- 파일 시스템, SQLiteDB, Web 에 저장될 수 있다.

- Content Provider를 통하여 다른 어플리케이션의 데이터를 제공할 수 있다

- Content Provider를 통해 다른 어플리케이션의 데이터를 쿼리하거나 변경할 수있다.

 

요약 -

데이터베이스의 데이터를 전달할때 많이 사용하며 생명주기를 가지고 있지 않다

 

생명주기 메소드 - X

4 Broadcast Receiver

- 안드로이드 기기에서 발생하는 다양한 이벤트 (화면이 켜지거나 꺼짐,리부팅 등)를 받고 반응하는 컴포넌트 

- 일반적으로 UI를 가지고 있지 않다.

- Broadcast Receiver 를 통해 상황을 감지하고 적절한 작업을 수행한다.

- 시스템 화면꺼짐,사진캡쳐,배터리부족,전화/문자 수신,네티워크 끊김을 알려줄수있다.

 

ex) 채팅 어플리케이션의 서비스가 채팅 서버로부터 메시지 받을 때까지 계속대기, 

메시지가 오면 서비스에서 메시지를 확인한 다음 브로드캐스트 수신자에게 메시지 내용과 알람 레벨을 알려주고 알람을 띄워달라고 요청,

브로드캐스트 수신자는 서비스에서 받은 메시지 내용을 가공하여 푸시 알람으로 사용자에게 메시지가 왔음을 알려줌

 

생명주기 메소드 - onReceive() 

리시버에게 브로드캐스트 메시지가 오면 onReceive()가 호출되고,이메시지를 인텐트 객체로 가진다.

브로드캐스트 리시버는 이 메소드를 실행하는 동안만 활성화 된 것으로 간주한다.

onReceive() 메소드가 리턴되면 비활성화됨.