Android에서 개발중인 첫 번째 애플리케이션에는 백그라운드에서 BLE 스캐닝이 포함됩니다. 응용 프로그램에는 서비스를 시작하는 두 개의 버튼 (검색 및 결과 기록)과 서비스 중지가 있습니다.IntentService에서 만든 BLE 검색이 서비스가 파괴 된 경우에도 계속 작동하는 이유는 무엇입니까?
documentation에서 나는 Service와 IntentService의 차이점을 알게되었습니다. IntentService를 사용하면 안드로이드 시스템이 전달 된 모든 인 텐트가 처리 될 때 안드로이드 시스템이 서비스를 파괴하고 따라서 서비스에 의해 생성 된 작업 스레드에서 실행중인 스캐닝이 작동을 멈추게 될 것이므로 최상의 접근 방법이 아닌 것으로 의심됩니다. 그러나, 나는 그것을 내 지식을 시험해보기 위해 시험해보고 싶었다.
예상대로 서비스가 생성 된 후 거의 즉시 파괴됩니다. 그러나 탐지 된 새 장치에 대해 알리는 로그는 계속 나타납니다. 이는 서비스가 파괴 된 경우에도 검색 프로세스가 계속 작동 함을 의미합니다. 주 활동을 종료하면 검사가 마침내 중단됩니다. 스캔 프로세스가 인 텐트 서비스에 의해 생성 된 스레드 (자동)가 아닌 주 활동의 스레드에 바인딩 된 것처럼 보이는 이유를 알고 싶습니다. 서비스가 파괴 된 경우에도 스캔 프로세스가 계속 작동하는 이유는 무엇입니까?
서비스 및 BLE 검색 (here 및 here)과 관련된 몇 가지 SO 답변을 발견했지만이 특정 주제를 다루는 사용자는 없습니다. 너 좀 도와 줄 수있어? 당
IntentService 코드를 표시 할 수 있습니까? –