BroadcastReceiver
BroadcastReceiver(BR) 란?• 시스템에서 발생되는 Event를 받아들여서처리를 하는 통로.• Broadcast: 시스템이 Event를 발송Receiver: 이러한 Event를 받아서 처리.• 예를 들어서...
구현 방법1. Manifest 파일에 등록: 받을 Event 및 처리자 규정2. 처리자 선언 및 구현
BroadcastReceiver 구현 주의사항• BR은 프로세스의 메인 쓰레드에서 실행• 이는 10초 이내에 return을 해야 합니다.– onReceive 메소드가 10초 내에 응답하지 않는 경우, 시스템은 App이 ...
BR 구현 주의 사항 테스트...ANR 발생약 20초
BR내에서 Thread 테스트 코드
BR 내 Thread 테스트 결과BroadCast 3회 호출각기 다른 Thread 3개 동작개별 Thread 정상 종료.물론 ANR 없이!!
BR 구현 가이드• 10초 이내에 (정확한 시간 보다는 바로 처리하게 구현한다고 이해) 입력에 대한 처리를 마치도록 합니다. 그렇지않으면 ANR이 발생됩니다.• 이를 위해서 Thread를 사용하는 방법을 사용하는 것을고...
일시적 등록 관리• Manifest 파일에 등록 않는 방법• 일시적으로 Receive를 하고 싶을 때, 소스 코드를 통해서 설정이 가능합니다.• 예를 들어서, 특정 UI 구성 요소를 특정 상태에 따라서 동적으로 노출을 ...
App 안에서 BR을 활용.• Event 기반으로 신호를 단지 시스템에서만 받는 것이 아닙니다.• 프로그램 적으로도 BR에 신호를 보낼 수 있으며, 이는 App 간/App내 통신 수단으로 활용될 수 있습니다.
활용 가능성…• 배터리/전원 상태 .. ACTION_BATTERY_CHANGED,ACTION_BATTER_LOW ..• SD 카드 상태 ..ACTION_MEDIA_MOUNTED, ACTION_MEDIA_REMOVED ....
추가로 abortPriority를 높여서, 먼저 broadcast를수신한 뒤에 abortBroadcast 통해서더 이상 broadcast가 전파되는 것을막을 수 있습니다.
Upcoming SlideShare
Loading in …5
×

14 broad castreceiver

339 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
339
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

14 broad castreceiver

  1. 1. BroadcastReceiver
  2. 2. BroadcastReceiver(BR) 란?• 시스템에서 발생되는 Event를 받아들여서처리를 하는 통로.• Broadcast: 시스템이 Event를 발송Receiver: 이러한 Event를 받아서 처리.• 예를 들어서,문자가 도착을 한 경우배터리가 떨어지는 경우
  3. 3. 구현 방법1. Manifest 파일에 등록: 받을 Event 및 처리자 규정2. 처리자 선언 및 구현
  4. 4. BroadcastReceiver 구현 주의사항• BR은 프로세스의 메인 쓰레드에서 실행• 이는 10초 이내에 return을 해야 합니다.– onReceive 메소드가 10초 내에 응답하지 않는 경우, 시스템은 App이 응답이 없는 것으로 판단. ANR 발생에 의해서 사용자가 App을 강제로 죽일 수 있습니다.– 즉 짧은 시간 내에 조처 후 return 하도록 구현• Thread를 생성하여 비동기로 구현할까요?– 이 방법은 의미가 없습니다.– onReceiver가 return하면, Thread 완료와 관계 없이 BR 생명 주기가 마쳐지기 때문입니다.– 진짜??? 책에 쓰여있는데, 이게 맞는 이야기?
  5. 5. BR 구현 주의 사항 테스트...ANR 발생약 20초
  6. 6. BR내에서 Thread 테스트 코드
  7. 7. BR 내 Thread 테스트 결과BroadCast 3회 호출각기 다른 Thread 3개 동작개별 Thread 정상 종료.물론 ANR 없이!!
  8. 8. BR 구현 가이드• 10초 이내에 (정확한 시간 보다는 바로 처리하게 구현한다고 이해) 입력에 대한 처리를 마치도록 합니다. 그렇지않으면 ANR이 발생됩니다.• 이를 위해서 Thread를 사용하는 방법을 사용하는 것을고려해보는 것도 좋습니다. 그렇지만, Thread 관리는 여전히 어렵죠.• onReceive에서 기본 처리 후, 시간이 소요될 작업이나 추가적인 화면 연동을 위해서는 해당 함수 안에서 service나 activity를 직접 start 시키도록 하자.
  9. 9. 일시적 등록 관리• Manifest 파일에 등록 않는 방법• 일시적으로 Receive를 하고 싶을 때, 소스 코드를 통해서 설정이 가능합니다.• 예를 들어서, 특정 UI 구성 요소를 특정 상태에 따라서 동적으로 노출을 하는 경우를생각할 수 있습니다.ContextActivity / Service
  10. 10. App 안에서 BR을 활용.• Event 기반으로 신호를 단지 시스템에서만 받는 것이 아닙니다.• 프로그램 적으로도 BR에 신호를 보낼 수 있으며, 이는 App 간/App내 통신 수단으로 활용될 수 있습니다.
  11. 11. 활용 가능성…• 배터리/전원 상태 .. ACTION_BATTERY_CHANGED,ACTION_BATTER_LOW ..• SD 카드 상태 ..ACTION_MEDIA_MOUNTED, ACTION_MEDIA_REMOVED ..• SMS 수신 .. SMS_RECEIVED• 여러 이벤트들이 있는데, 이들을 활용하는 것은 그 때 그 때찾아봅시다. 그리고 주의할 점은 대부분 RECEIVE 받고자 하는Event들에 대해서는 Permission이 필요합니다. 이 부분도 확인하도록 합니다.
  12. 12. 추가로 abortPriority를 높여서, 먼저 broadcast를수신한 뒤에 abortBroadcast 통해서더 이상 broadcast가 전파되는 것을막을 수 있습니다.

×