2013년 2월 20일 수요일

android - running in a background service

Background Service 실행

특정 화면내에서 장시간 작업의 수행은 Background Thread를 이용합니다.
그러나 특정 화면에 국한되지 않거나 매우 긴 작업 수행이 필요한 경우 Background Service를 이용할 수 있습니다.

Background Service의 대표적인 예가 IntentService이며 이를 활용하는 방법을 설명합니다.

1.Background Service 생성
 1) IntentService를 상속받는 클래스를 만듭니다.
 2) onHandleIntent() 콜백 메소드를 구현합니다.
  - 해당 메소드의 인자로 받은 Intent로 요청 데이터를 받아 단일 쓰레드로 작업을 처리할 수 있습니다.
 3) AndroidManifest.xml에 service로 등록합니다.

2. Background Service에 작업 요청하기
 1) Intent에 작업 요청을 위한 데이터 세팅
 2) startService() 메소드로 서비스 호출 및 작업 요청
 3) IntentService의 onHandleIntent()가 콜백되어 작업처리
  - onHandleIntent() 메소드가 콜백되어 실행되며 이는 단일 쓰레드 이기에 한번에 하나의 Intent씩 처리됩니다.
  - onHandleIntent() 처리중 다른 요청이 오게되면 이전 작업이 완료된 후 처리됩니다.

3. 작업 상태 레포팅
 1) IntentService에서 작업 상태 레포팅 하기
  - LocalBroatcastManager의 sendBroadcast() 메소드를 이용하여 주기적인 레포팅
 2) BroadcastReceiver를 LocalBroatcastManager로 등록하여 onReceive() 콜백 메소드로 레포팅 결과를 얻을  수 있습니다.

댓글 없음:

댓글 쓰기