-
(Android) bindservice와 broadcast를 같이 못쓰는 이유IT 지식 창고 2019. 1. 12. 20:07
Why?
- 방송 수신기가 가벼운 components이기 때문에 최대 10 초 이내에 기능을 완료 해야 하기 때문입니다. 그렇지 않으면 안드로이드가 강제로 수신자를 죽일 수 있습니다. 서비스를 바인딩 (연결 설정)하는 것은 최악의 경우에는 10 초 이상 걸릴 수 있습니다. 그래서 안드로이드가 허용하지 않는 이유입니다.
Rules for Broadcast Receivers :
- 방송 수신기는 UI (대부분)가 없으며 배경 로직만 갖습니다.
- 브로드 캐스트 수신기는 기능을 완료하는 데 최대 10 초의 시간 제한을 갖지만 그렇지 않은 경우에는 충돌합니다.
- 리시버에서 장기 실행 조작이나 비동기(asynchronous) 조작을 해서는 안됩니다. 예 : SD 카드 준비 중, 인터넷에서 파일 업로드 / 다운로드, DB 파일 만들기, 서비스에 바인딩
- 브로드 캐스트 리시버에서 사용자에게 대화 상자를 표시하지 마십시오. (이것은 비동기식 동작 임)
- '토스트' 또는 '알림(notification)'을 사용할 수 있습니다.
- 무거운 기능을 쓰지 마십시오.
- 개발자 안드로이드에서 가져온 참조 -출처 : stack overflow에서 한 답변
'IT 지식 창고' 카테고리의 다른 글
(Python) 리스트(list), 배열(array)에서 반올림 하는 법 (0) 2019.01.23 (티스토리 스킨) 기본 이미지 설정 (0) 2019.01.15 (Python) order(), sort_index(), sort_values() 무슨 차이가 있을까? (1) 2019.01.11 (Python) ModuleNotFoundError: No module named 'StringIO' (0) 2019.01.11 (Kaggle) Kaggle 제출 제한 (0) 2019.01.09 댓글