안드로이드 서비스

강현성·2022년 8월 11일
0

android

목록 보기
5/18

1. 안드로이드 서비스

안드로이드 앱을 만들다 보면 사용자와 상호작용 하는 것이 아니라 앱 백그라운드에서 수행돼야 하는 작업들이 있다. 예를 들어 음악 재생 앱이라면 음악을 재생하고 홈키를 눌러도 노래는 계속 재생돼야 된다. 이렇게 백그라운드에서 수행돼야 하는 작업들은 안드로이드 4대 컴포넌트 중 하나인 서비스에서 작업하게 된다.
액티비티 및 다른 구성 요소와 마찬가지로, 서비스는 모두 애플리케이션의 매니페스트 파일에서 선언해야 된다.

2. 서비스의 3가지 유형

  • 포그라운드
    서비스는 포그라운드로도 실행할 수 있는데 예를 들어 알림창에 서비스가 실행 중인 것을 표시하는 등에 사용한다.

  • 백그라운드
    사용자에게 보이지 않고 앱을 종료하더라도 계속 실행돼야 하는 작업들은 백그라운드에서 수행한다. 단 시스템 리소스가 부족할 경우 강제 종료될 수 있다.

  • 바인드
    애플리케이션 구성 요소가 bindService()를 호출하여 해당 서비스에 바인딩되면 서버 - 클라이언트와 같은 형태로 상호작용 할 수 있다. 따라서 여러 프로세스에서 하나의 서비스에 바인딩하여 작업을 수행할 수 있다.

3. 서비스 수명 주기, 주요 콜백 메서드


서비스의 수명 주기는 백그라운드와 바인드로 나뉜다.

  • 백그라운드
    startService(): 앱의 다른 구성요소가 서비스를 실행 할 때 사용한다.
    stopService(): 앱의 다른 구성요소가 서비스를 종료 시킬때 사용한다.
    onCreate(): 서비스가 호출 될 때 한 번 호출된다.
    onStartCommand(): 앱의 다른 구성 요소에서 서비스를 실행하면 이 메서드가 호출되고 서비스가 시작돼 백그라운드에서 작업을 수행한다.
    stopSelf(): 서비스가 스스로 중단한다.
    onDestroy(): 서비스가 완전히 종료될때 호출된다.
  • 바인드
    bindService(): 앱의 다른 구성요소에서 서비스에 바인딩 할 때 사용한다.
    unbindService(): 앱의 다른 구성요소에서 서비스를 언바인딩 할 때 사용한다.
    onCreate(): 서비스가 호출 될 때 한 번 호출된다.
    onBind(): 앱의 다른 구성요소가 서비스에 바인딩되면 호출된다.
    onUnbind(): unbindService() 호출 시 호출된다.
    onDestroy(): 서비스가 완전히 종료될때 호출된다.
profile
Hello!

0개의 댓글