Download presentation
Presentation is loading. Please wait.
Published by보령 예 Modified 8년 전
1
Page 1 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. IT CookBook, 안드로이드 프로그래밍 본 강의교안은 수업상황을 도입 - 전개 - 마무리로 구분하여 수업의 각 단계에서 필요한 요소 중 강의교안으로 커버할 수 있는 영역을 기준으로 작성되었습니다. 도입 : 수업준비, 전시학습, 동기유발, 학습목표 전개 : 학습안내제공, 정보제시, 연습기회제공, 수행유도, 중간점검 ( 피드백 ) 마무리 : 정리, 형성평가, 다음 차시 안내 [ 강의교안 이용 안내 ] 본 강의교안의 저작권은 한빛미디어㈜에 있습니다. 이 자료를 무단으로 전제하거나 배포할 경우 저작권법 136 조에 의거하여 최고 5 년 이하의 징역 또는 5 천만원 이하의 벌금에 처할 수 있고 이를 병과 ( 倂科 ) 할 수도 있습니다.
2
IT CookBook, 안드로이드 프로그래밍 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. 13. 서비스와 브로드캐스트 리시버
3
Page 3 학습목표 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. 서비스의 개념을 파악한다. 앱을 종료해도 음악이 계속 나오는 서비스를 만든다. 브로드캐스트 리시버의 개념을 파악한다. 배터리 방전 시 동작하는 앱을 작성한다.
4
Page 4 차례 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved.
5
Page 5 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. 1. 서비스 서비스 개요 서비스 (Service) 는 일반적으로 화면없이 동작하는 프로그램을 말하는데, 데몬 (Daemon), 백그라운드 프로세스 (Background Process) 라고도 부른다. 지금까지 주로 다루었던 액티비티 응용 프로그램은 화면 ( 액티비티 ) 이 종료되면 응용 프로그램이 더는 동작하지 않는다. 반면 서비스는 백그라운드에서 실행되므로 화면과 상관없이 계속 동작한다.
6
Page 6 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-1] 계속되는 음악 서비스 만들기 (1/8) 버튼을 클릭하면 음악이 시작되고 화면이 종료되어도 음악이 계속 흐르는 서비스를 작성해보자. 프로젝트 정보 프로젝트 이름 : Project14_1 패키지 이름 : com.cookandroid.project14_1 빌드 SDK : Goolge API 15 또는 16 Minimum Required SDK : API 15 또는 16 액티비티이름 : Project14_1Activity 레이아웃 이름 : main 타이틀 : Project14_1 1. 서비스
7
Page 7 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-1] 계속되는 음악 서비스 만들기 (2/8) 화면 디자인 : main.xml 수정 버튼 2 개를 생성하고 id 는 btnStart, btnStop 으로 한다. 1. 서비스
8
Page 8 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-1] 계속되는 음악 서비스 만들기 (3/8) Java 코딩 1 Service 클래스의 상속을 받는 MusicService 클래스를 정의 1. 서비스
9
Page 9 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-1] 계속되는 음악 서비스 만들기 (4/8) Java 코딩 2 onCreate( ), onDestroy( ), onStartCommand( ) 메소드를 자동완성 후 코딩 1. 서비스
10
Page 10 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-1] 계속되는 음악 서비스 만들기 (5/8) Java 코딩 3 전역변수로 MediaPlayer 변수를 1 개 선언한다. onStartCommand( ) 메소드에 MP3 파일을 시작하는 코드를 추가한다. onDestroy( ) 메소드에 음악을 중지시키는 코드를 추가한다. 1. 서비스
11
Page 11 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-1] 계속되는 음악 서비스 만들기 (6/8) Java 코딩 4 Intent 변수 1 개와 Button 변수 2 개를 전역변수로 선언한다. 인텐트 변수를 생성하면서 MusicService 클래스를 생성자에 넘긴다. main.xml 의 버튼 2 개를 버튼 변수에 적용시킨다. 을 클릭하면 serviceStart( ) 를 호출하고 로그를 남긴다. 을 클릭하면 stopStart( ) 를 호출하고 로그를 남긴다 1. 서비스
12
Page 12 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-1] 계속되는 음악 서비스 만들기 (7/8) 프로젝트 실행 1 : 로그캣 메시지 필터링 1. 서비스
13
Page 13 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-1] 계속되는 음악 서비스 만들기 (8/8) 프로젝트 실행 2 : 서비스 시작과 종료후의 로그캣 1. 서비스
14
Page 14 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-1] 에서 로그캣에 남기는 부분을 토스트 메시지로 나오도록 변경하라. 을 클릭하면 응용 프로그램이 자동으로 종료되고 음악은 계속 나온다. [ 직접 풀어보기 14-1] 1. 서비스
15
Page 15 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. 2. 브로드캐스트 리시버 브로드캐스트 리시버 개요 브로드캐스트 리시버를 활용하면 안드로이드에서 발생하는 많은 이벤트를 감지하고 이를 처리하기 위한 앱을 작성할 수 있음. 안드로이드는 문자 메시지 도착, 배터리 방전, SD 카드 탈부착, 네트워크 환경 변화 등이 발생하면 방송 신호를 보내는데, 이런 방송 신호를 받아서 처리하는 것이 브로드캐스트 리시버. 브로드캐스트 리시버의 대표적인 응용은 배터리 상태 확인임.
16
Page 16 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-2] 배터리 상태를 표시해주는 앱 만들기 (1/8) 배터리의 상태가 변할 때마다 충전 상태 이미지와 배터리 상태를 출력하는 앱을 작성하자. 프로젝트 정보 프로젝트 이름 : Project14_2 패키지 이름 : com.cookandroid.project14_2 빌드 SDK : Goolge API 15 또는 16 Minimum Required SDK : API 15 또는 16 액티비티이름 : Project14_2Activity 레이아웃 이름 : main 타이틀 : Project14_2 2. 브로드캐스트 리시버
17
Page 17 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-2] 배터리 상태를 표시해주는 앱 만들기 (2/8) 화면 디자인 배터리 상태에 따라 변하는 이미지 5 개를 /res/drawable-hdpi 에 복사 main.xml 에 이미지뷰 1 개와 에디트텍스트 1 개를 생성. id 는 ivBattery, edtBattery. 2. 브로드캐스트 리시버
18
Page 18 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-2] 배터리 상태를 표시해주는 앱 만들기 (3/8) Java 코딩 1 ImageView 변수 1 개와 EditText 변수 2 개를 전역변수로 선언한다. main.xml 의 위젯 2 개를 변수에 적용시킨다. 2. 브로드캐스트 리시버
19
Page 19 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-2] 배터리 상태를 표시해주는 앱 만들기 (4/8) Java 코딩 2-1 BR 객체를 생성하고, onReceive( ) 메소드에 인텐트의 액션이 ACTION_BATTERY_CHANGED 인 경우에 다음을 처리한다. 인텐트의 Extra 에서 배터리의 잔량을 추출한 후 그에 따라 잔량을 표시하고 배터리 이미지를 변경한다. 인텐트의 Extra 에서 배터리의 전원 연결 상태를 추출한 후 표시한다. 2. 브로드캐스트 리시버
20
Page 20 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-2] 배터리 상태를 표시해주는 앱 만들기 (5/8) Java 코딩 2-2 2. 브로드캐스트 리시버
21
Page 21 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-2] 배터리 상태를 표시해주는 앱 만들기 (6/8) Java 코딩 3 onPause( ), onResume( ) 를 자동완성 한다. onResume( ) 메소드 : 인텐트 필터를 생성하고 ACTION_BATTERY_CHANG ED 액션을 추가한 후 BR 에 등록한다. onPause( ) 메소드 : 등록된 BR 을 해제한다. 2. 브로드캐스트 리시버
22
Page 22 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-2] 배터리 상태를 표시해주는 앱 만들기 (7/8) 프로젝트 실행 1 텔넷 (Telnet) 프로그램을 이용해보자. 명령 프롬프트를 열고 “telnet localhost 5554” 를 입력한다. 2. 브로드캐스트 리시버
23
Page 23 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-2] 배터리 상태를 표시해주는 앱 만들기 (8/8) 프로젝트 실행 2 배터리 잔량을 변경해보자. power capacity 5 명령은 배터리 잔량을 5% 로 변경한다. power ac off 명령도 입력해 본다. 2. 브로드캐스트 리시버
24
Page 24 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. [ 실습 14-2] 에 배터리 상태 (EXTRA_STATUS) 가 변경될 때마다 토스트 메시지가 나오도록 수정하자. [ 직접 풀어보기 14-2] 2. 브로드캐스트 리시버
25
Page 25 핵심정리 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved. 1. 서비스 생명 주기의 동작 순서는 onCreate( ) → onStartCommand( ) → onDestroy( ) 다. 2. 서비스를 시작하기 위한 메소드는 startService( ), 중지하기 위한 메소드는 stopService( ) 다. 3. 서비스는 AndroidManifest.xml 에 등록해야 사용할 수 있다. 4. 브로드캐스트 리시버 (BR, Broadcast Receiver) 를 활용하면 안드로이드에서 발생하는 많은이벤트 ( 문자 메시지, 배터리 방전, 날짜 변경 등 ) 를 감지하고 이를 처리하기 위한 앱을 작성할 수있다.
26
IT CookBook, 안드로이드 프로그래밍 Copyright© 1993-2012 Hanbit Media, Inc. All rights reserved.
Similar presentations