코틀린으로 작성한 안드로이드 서비스 만들기
오늘은 안드로이드 서비스를 코틀린으로 구현해보려 합니다.
개요
안드로이드 서비스란 앱의 백그라운드에서 실행되며 오래동안 실행되는 작업을 수월하게 수행할 수 있는 구성 요소입니다.
엑티비티와 차이점이 있다면 별도의 디자인된 UI가 필요 없다는 점이 있습니다.
service 클래스 파일
class AppService : Service()
우선 서비스 클래스를 상속받는 클래스를 만들어 줍니다.
그러면 구현이 필요한 메소드들이 나오게 되는데, 이는 밑에서 서술합니다.
service 등록
<service
android:name=".AppServiceFile" />
앱의 manifest 파일에 서비스를 등록해야 합니다.
application 태그 안에 넣어줍니다.
service 시작
서비스는 activity나 application에서 시작할 수 있습니다
startService(Intent(context(),AppService::class.java))
한 줄로 표현하였지만, 결국은 context와 서비스 클래스 파일을 인자로 받아서 intent로 만든 다음에 startService 메소드로 서비스를 시작해주면 됩니다.
service 구현
그러면 이제 service에서 구동시킬 내용을 구현해주면 됩니다.
class AppService : Service() {
override fun onBind(p0: Intent?): IBinder {
throw UnsupportedOperationException("Not yet")
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
callEvent()
return Service.START_STICKY
}
}
처음에 언급했던 구현해야 될 메소드들은 onBind와 onStartCommand이며,
callEvent() 메소드가 있는 부분에 원하는 내용을 넣게 되면 서비스가 시작되면서 작동하게 됩니다.
Written on August 1, 2018