안녕하세요 오늘은 안드로이드 4대 컴포넌트 중 하나인 Service에 대해서 포스팅 해보겠습니다.
4대 컴포넌트는 Activity, Service, BroadCast Receiver, Content Provider로 이루어져 있습니다.
각각의 고유의 기능을 가지고 있고 저는 그중 백그라운드에서 사용되는 Service에 적어보겠습니다.
서비스는 주로 백그라운드에서 오랫동안 실행되는 작업을 수행하는 데 사용됩니다. 서비스는 사용자 인터페이스를 갖지 않고 사용자와 상호작용 하지 않으며 백그라운드에서 실행됩니다.(다른 컴포넌트와 상호작용은 가능)
서비스는 주로 네트워크 작업, 파일 다운로드, 데이터 동기화, 데이터베이스 관리, 백그라운드 음악 재생 등과 같은 오랜 시간이 걸리는 작업을 처리하기 위해 사용됩니다. 위에 나열한 작업들은 주로 앱의 사용자 인터페이스와 독립적으로 실행되어야 하기 때문에 서비스를 활용합니다.
1.Foreground Service(전면 서비스) : 사용자에게 직접적인 알림을 표시하고, 중요한 작업을 수행하는 서비스 입니다. 사용자가 앱을 종료해도 계속 실행되며, 사용자와 상호작용이 필요한 작업을 처리할 수 있습니다.
2.Background Service(백그라운드 서비스) : 사용자에게 직접적인 알림을 표시하지 않고 백그라운드에서 실행되는 서비스입니다. 주로 네트워크 작업이나 데이터 동기화와 같은 작업을 처리합니다.
3.Bound Service(바운드 서비스) : 다른 컴포넌트와 바인딩하여 상호작용하는 서비스입니다.
다른 컴포넌트에서 바운드 서비스에 연결하여 데이터를 주고받거나 메서드를 호출할 수 있습니다.
예를 들어, 음악 재생 앱에서 재생 컨트롤을 위해 MediaPlayer와 바인딩된 서비스를 사용할 수 있습니다.
Service도 Activity와 마찬가지로 lifecycle을 가지며, lifecycle 콜백 메서드가 있습니다.

service를 실행시킬 수 있는 방법은 2가지로, startService() 또는 bindService()를 호출하는 방법이 있습니다. 호출되는 방법에 따라 lifeCycle또한 차이가 있습니다.
서비스는 이러한 라이프사이클 메서드를 통해 초기화, 실행, 작업 처리, 종료 등의 동작을 수행하며, 이를 활용하여 앱의 백그라운드 작업이나 상호작용을 구현할 수 있습니다.
https://developer.android.com/guide/components/services?hl=ko