티스토리 뷰

728x90

Android Service란 쉽게 말해서 백그라운드에서 동작하는 기능을 말하는 겁니다. 대표적인 예로 카카오톡 앱을 실행하지 안고도 누구가 메세지를 보내면 받고 알려주는 것이 있습니다. 
여기에
 Notification을 이용하여 특정 상황이 되면 Service가 알아서 알림(Notification)을 발생시키는 예제를 설명해 드리도록 하겠습니다.

Notification 설명 : http://twinw.tistory.com/48
Service 설명 : http://twinw.tistory.com/49

예제 시나리오는 서비스안에 즉 안드로이드 백그라운드에 쓰레드(핸들러포함)를 생성하여 10초를 세고 핸들러에게 메세지를 전달합니다. 그리고 알람(Notification)을 가지고 있는 핸들러는 메세지를 받고 알람을 발생시킵니다.

 

1. MainActivity.class


우선 메인 엑티비티 입니다. xml은 Service 시작 버튼과 끝내는 버튼이 있습니다.

 

2. ServiceThread.class


서비스 쓰레드 입니다. 대부분 서버나 외부로부터 신호를 받는다고 가정하여 쓰레드로 구현했습니다. 추가로 httpConnect도 그렇고 Socket도 그렇고 인터넷 연결에 대한 것은 쓰레드로 구현해야합니다. 안그러면 앱터집니다.

 

 

 

서비스는 기본 class를 생성하듯이 생성하는것이 아니라 Activity처럼 Manifest에 등록되어야 함으로 아래 사진과 같이 생성합니다.

이후 AndroidManifest.xml에 들어가 정상적으로 되었는지 확인합니다.

서비스를 생성하면 onBind함수가 오버라이드 되어 있습니다. 여기에 아래 그림과 같이 제일 기본적인 함수 3개를 Code -> OverrideMethods에서 추가할 수 있습니다.

1. onCreate() : 최초 생성되었을때 한번 실행됩니다.
2. onStartComand() : 백그라운드에서 실행되는 동작들이 들어가는 곳입니다.
3. onDestroy() : 서비스가 종료될 때 실행되는 함수가 들어갑니다.

Service에 대한 자세한 설명은 http://twinw.tistory.com/49에 있습니다.

 

3. MyService.class


 

4. 실행결과


 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함