제이슨의 개발이야기

안드로이드 서비스란 무엇일까?? 백그라운드?? 본문

안드로이드

안드로이드 서비스란 무엇일까?? 백그라운드??

제이쓰은 2021. 3. 3. 10:36
728x90
반응형

안드로이드에서 서비스는 백그라운드에서 실행되는 프로세스를 의미합니다. 액티비티와 다른 점은 화면이 없다는 것인데 화면이 없다는 것을 제외하면 사실상 애플리케이션의 구성요소로서 액티비티 처럼 동작한다고 생각할 수 있다 그리고 서비스도 애플리케이션의 구성요소이므로 새로 만든 후에는 항상 매니페스트 파일에 등록해야 하며 메인 액티비티 에서 서비스를 시작하고 싶으면 startService() 메소드를 이용해 시작할 수 있습니다 

메니패스트에 서비스 등록

위의 이미지는 5초마다 로그를 찍는 서비스이다 즉 어플리케이션을 사용하면서 자동으로 5초 마다 로그를 찍는것이다 

서비스는 Service 클래스를 상속하여 정의할 수 있습니다  그리고 Runnable 인터페이스를 구현하여 run() 메소드로 스레드가 실행되도록 하였습니다! 여기서 onCreate()메소드가 보이는데 액티비티에서 onCreate() 처럼 서비스가 처음 만들어질 때 호출됩니다

서비스 클래스는 다른 구성요소와의 유기적인 연결을 위해 바인딩될 수 있는데 이를 위해 onBind() 메소드를 재정의해야합니다 저는 바인딩 할 코드가 없어서 그냥 남겨놨습니다 

원하는 액티비티(저는 MainActivity)에서 서비스 실행하는 코드


서비스는 화면에 보이는 내용과 관계없이 항상 대기 중인 작업이 필요로 할 때 자주 사용됩니다 예를 들어 네트워킹을 통해 서버에 데이터를 요청하고 응답을 기다리는 작업을 서비스로 분리하여 구현하면 사용자가 보는 화면과 관계없이 서버와의 통신이 가능할 뿐만 아니라 서버로부터 응답이 왔을 경우 원하는 화면을 띄우는 기능도 매우 자연스럽게 구현 할 수 있습니다

728x90
반응형