Nuke Olaf - Log Store

[Android] 안드로이드 - 내가 생각한 foreground/background service의 차이 본문

Android

[Android] 안드로이드 - 내가 생각한 foreground/background service의 차이

NukeOlaf 2019. 12. 6. 17:58

포그라운드 서비스와 백그라운드 서비스의 차이를 알기 위해서 포그라운드와 백그라운드의 개념에 대해 알아보았다. 포그라운드는 사용자에게 보여지는 상태의 Activity와 비슷하다고 할 수 있다. Activity의 가장 큰 특징 중 하나가 하나의 화면에 하나의 Activity만을 보여지게 할 수 있다는 것이다. 앱을 이용하는 사용자는 현재 보여지고 있는 하나의 Activity하고만 소통할 수 있다.

실제로, Activity가 onCreate() 된 이후로 화면에 보여지는 상태일때는 포그라운드 프로세스로 실행된다. 그러다가 화면에 보여지지 않는 상태인 onStop() 이나 onDestoy() 메서드가 호출된 이후에는 백그라운드 프로세스로 전환된다.

이러한 점에서 내가 생각한 포그라운드와 백그라운드의 가장 큰 차이점은, 프로그램이 실행중인지의 여부를 사용자가 시각적으로 인지할 수 있느냐 였다.

포그라운드 서비스와 백그라운드 서비스의 경우에도, 기본적으로 둘다 서비스의 특징을 가지고 있다. 하지만 포그라운드 서비스의 경우에는 실행되는 동안에는 무조건 notification(상태 바 알림)을 띄워서 서비스가 실행중임을 사용자에게 알려야 한다는 규칙이 있다. 또한, 백그라운드 서비스의 경우에는 안드로이드 os 내에서 자원이 부족해지면 임의로 종료시킬 수 있다. 그러나, 포그라운드 서비스의 경우에는 서비스가 동작중임을 사용자가 인지하고 있기 때문에 os의 자원이 부족해지더라도 안드로이드 os에서 강제로 종료시키지 않는다고 한다.

이렇게 포그라운드 서비스와 백그라운드 서비스의 차이점에 대해서 공부한 점을 정리하여 적어보았다.

Comments