2014-09-23 2 views
3

BroadcastReceiver을 영원히 (100 %) 활성화해야합니다. 이제 안드로이드 매니페스트에 등록 된 것을이 경우 엔 안드로이드 프레임 워크에 의해 앱 자체가 파괴 될 때 죽을까요?브로드 캐스트 수신기의 수명주기

이제 전 항상 포 그라운드에서 실행되는 서비스가 있습니다. 윌은 내 앱이 절대 파괴되지 않을 것인가? 그리고 차례로 안드로이드 매니페스트에 등록 된 리시버가 영원히 계속 활성화 될 것입니다.

답변

5

는 매니페스트에 BroadcastReceiver (docs)는 항상 활성화되어 있으며 (전화가 켜져 때마다 트리거 의도 행동 android.intent.action.BOOT_COMPLETED에 대한 수신기에 대해 생각) 활동이 더 이상 실행되지 않는 경우에도 작동하지 않습니다. 동적으로 정의되고 등록 된 수신기는 앱이 실행될 때만 작동합니다 (예 : LocalBroadcastManagerregisterReceiver(...) 접근).

이 의 한 응용 프로그램의 구성 요소로 방송 수신기 (A 브로드 캐스트 리시버 서브 클래스)를 선언 : 어떤 상태

receiver element documentation를 참조하십시오. 브로드 캐스트 수신기를 사용하면 응용 프로그램의이 실행되고 있지 않은 경우에도 응용 프로그램이 시스템이나 다른 응용 프로그램에서 브로드 캐스트되는 인 텐트를 수신 할 수 있습니다.

Documentation about services는 말한다 :

전경 서비스는 사용자가 메모리

에 때 저 죽일 시스템 에 대한 따라서 후보는 아닌지의 적극적으로 인식하고 무언가로 간주하는 서비스입니다

따라서 시스템이 서비스가 참조하는 실행중인 응용 프로그램을 죽이지 않을 가능성이 있습니다.

안드로이드 플랫폼에 대해 매우 포괄적 인 문서를 읽는 것만 가능합니다.

+0

Android의 최신 버전에서만 추가하고 싶은데, 앱이 적어도 한 번 이상 실행될 때까지 매니페스트의 BroadcastReceivers가 활성화되지 않습니다. – Albin

+0

정확한 대답은 fiipi에게 감사드립니다. 나는 문서를 통과했지만 문서의 크기가 매일 증가하고 원치 않는 많은 정보가 추가되었습니다. 나는 이것을 매우 명확한 초기 문서들과 비교하고있다. 나도 내 질문에이 언급했지만 편집되었습니다 :) 다시 한번 감사드립니다. –

+0

정적으로 등록 된 브로드 캐스트 수신기를 비활성화/다시 활성화하는 방법이 있습니까? Wi-Fi 스캔이 완료되면 알림을 받고 싶습니다. 단, 앱에서 특정 토글을 사용하도록 설정해야합니다. 정적으로 등록하는 것이 과도한 것으로 보이므로 앱에서 토글을하면 아무런 조치도 취하지 않더라도 10 ~ 20 초마다 스캔이 완료 될 때마다 onReceive()가 트리거됩니다. – BoomShaka

관련 문제