안드로이드에서 서비스는 백그라운드에서 쓰레드가 동작하게 함으로써 기능을 하나 더 추가하는 방식의 기능이다. 서비스 시작은 다음과 같이 간단하게 사용할 수 있다.
정말로 간단하다. MyService 라는 클래스를 따로 만든 다음, 새로운 인텐트 객체를 만들어 startService를 호출하면 된다.
물론, 새로 만든 서비스 전용 클래스는 다음과 같이 AndroidManifest.xml 파일에 지정되어 있어야 한다. 문제는, 서비스를 중지할 때 일어난다.
쓰레드는 계속해서 돌고 있는데, stopService를 호출해도 도통 멈출 생각을 하지 않는다는 것이다. 분명 onDestroy도 재정의했으며, stopService 시 잘 호출되지만 서비스의 쓰레드 자체는 계속해서 돌고 있었다.
그런데 자료를 조금 더 찾아보니, stopService를 호출한다고 해서 쓰레드 자체가 멈추는 것이 아닌, boolean 변수 등을 설정해 run 함수 내에서 빠져나오게 하는 것이였다(........) 즉, ...