Nuke Olaf - Log Store
[Android] 안드로이드 - 내가 생각한 foreground/background service의 차이 본문
포그라운드 서비스와 백그라운드 서비스의 차이를 알기 위해서 포그라운드와 백그라운드의 개념에 대해 알아보았다. 포그라운드는 사용자에게 보여지는 상태의 Activity와 비슷하다고 할 수 있다. Activity의 가장 큰 특징 중 하나가 하나의 화면에 하나의 Activity만을 보여지게 할 수 있다는 것이다. 앱을 이용하는 사용자는 현재 보여지고 있는 하나의 Activity하고만 소통할 수 있다.
실제로, Activity가 onCreate() 된 이후로 화면에 보여지는 상태일때는 포그라운드 프로세스로 실행된다. 그러다가 화면에 보여지지 않는 상태인 onStop() 이나 onDestoy() 메서드가 호출된 이후에는 백그라운드 프로세스로 전환된다.
이러한 점에서 내가 생각한 포그라운드와 백그라운드의 가장 큰 차이점은, 프로그램이 실행중인지의 여부를 사용자가 시각적으로 인지할 수 있느냐 였다.
포그라운드 서비스와 백그라운드 서비스의 경우에도, 기본적으로 둘다 서비스의 특징을 가지고 있다. 하지만 포그라운드 서비스의 경우에는 실행되는 동안에는 무조건 notification(상태 바 알림)을 띄워서 서비스가 실행중임을 사용자에게 알려야 한다는 규칙이 있다. 또한, 백그라운드 서비스의 경우에는 안드로이드 os 내에서 자원이 부족해지면 임의로 종료시킬 수 있다. 그러나, 포그라운드 서비스의 경우에는 서비스가 동작중임을 사용자가 인지하고 있기 때문에 os의 자원이 부족해지더라도 안드로이드 os에서 강제로 종료시키지 않는다고 한다.
이렇게 포그라운드 서비스와 백그라운드 서비스의 차이점에 대해서 공부한 점을 정리하여 적어보았다.
'Android' 카테고리의 다른 글
[Android] 안드로이드 - hardware 의 카메라 사용하는 앱 with Kotlin (0) | 2019.12.06 |
---|---|
[Android] 안드로이드 - 카메라 예제 참고 사이트 (0) | 2019.12.06 |
[Android] 안드로이드 - 포그라운드 서비스와 백그라운드 서비스의 차이 (0) | 2019.12.06 |
[Android] 안드로이드 - 서비스와 다른 컴포넌트끼리의 통신 (0) | 2019.12.04 |
[Android] 안드로이드 - Alarm 알람기능 (1) | 2019.12.04 |