2. Service 만들기(1)
페이지 정보
작성자 관리자 댓글 0건 조회 2,755회 작성일 21-03-23 17:51본문
2. Service 만들기(1)
안드로이드 서비스란 앱의 백그라운드에서 실행되며 오래동안 실행되는 작업을 수월하게 수행할 수 있는 구성 요소입니다.
엑티비티와 차이점이 있다면 별도의 디자인된 UI가 필요 없다는 점이 있습니다.
서비스란 안드로이드 4대 컴포넌트 중 하나로 화면이 없고 백그라운드에서 수행하는 작업을 작성하는 컴포넌트입니다.
서비스는 크게 바운드된 서비스와 바운드되지 않은 서비스로 나뉩니다.
지금 다룰 서비스는 바운드 되지 않은 서비스입니다.
1. 프로젝트 생성
프로젝트명 : ServiceTest
2. Service 클래스 생성
서비스 클래스를 상속받는 클래스를 만들어 줍니다.
그러면 구현이 필요한 메소드들이 나오게 됩니다.
class AppService : Service() {
override fun onBind(intent: Intent?): IBinder? {
TODO("Not yet implemented")
}
}
3. service 등록
앱의 manifest 파일에 서비스를 등록해야 합니다.
application 태그 안에 넣어줍니다.
<service android:name=".AppService" />
4. service 시작
서비스는 activity나 application에서 시작할 수 있습니다
startService(Intent(context(),AppService::class.java))
한 줄로 표현하였지만, 결국은 context와 서비스 클래스 파일을 인자로 받아서 intent로 만든 다음에 startService 메소드로 서비스를 시작해주면 됩니다.
5. service 구현
그러면 이제 service에서 구동시킬 내용을 구현해주면 됩니다.
구현해야 될 메소드들은 onBind와 onStartCommand이며, callEvent() 메소드가 있는 부분에 원하는 내용을 넣게 되면 서비스가 시작되면서 작동하게 됩니다.
class AppService : Service() {
override fun onBind(intent: Intent?): IBinder? {
throw UnsupportedOperationException("Not yet")
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
callEvent()
return Service.START_STICKY
}
private fun callEvent() {
Log.i("My_TAG", "start service")
}
}
6. 실행
실행하여 결과를 확인합니다.
7. 서비스와 생명주기
서비스는 액티비티와 마찬가지로 생명주기용 콜백 메소드를 가지고 있습니다.
서비스를 시작하면 onCreate() 메소드가 호출되고, onStartCommand() 메소드가 호출되며 여기서 서비스의 동작을 코드로 작성합니다.
서비스가 종료되면 onDestroy() 메소드가 호출됩니다.
- onCreate() : 서비스가 생성 될 때 호출되는 콜백메소드 입니다. 초기화 등을 수행합니다.
- onStartCommand() : 서비스가 액티비티와 같은 다른 컴포넌트로 부터 startService() 메소드로 호출되면 불리는 콜백 메소드 입니다.
- onDestroy() : 서비스 내부에서 stopSelf() 를 호출하거나 외부에서 stopService() 를 서비스를 종료하면 호출됩니다.
댓글목록
등록된 댓글이 없습니다.