0

브로드 캐스트 인 텐트를 수신하지 않는 싱글 톤 클래스의 브로드 캐스트 수신기가 있습니다.싱글 톤 클래스의 BroadcastReceiver가 의도를 수신하지 않습니다.

싱글 톤은 컨텍스트 (즉, getInstance (context))로 초기화됩니다.

getContext()를 호출합니다. sendBroadcast (intent); 하지만 BroadcastReceiver는 아무것도 얻지 못합니다. 의도 필터가 일치하는지 확인했습니다.

내가 수신기를 등록하는 방법은 무슨 일 때문에

private class Singleton(Context context) { 
    context.registerReceiver(mReceiver, INTENT_FILTER); 
.... 

private onDestroy(Context context) { 
    context.unregisterReceiver(mReceiver); 
.... 

처럼 내 싱글 생성자에!?

답변

2

그래, 내가 잘못한 것을 알아 냈어. 활동에 의해 싱글 톤이 생성되고 따라서 전달되는 컨텍스트는 활동 컨텍스트입니다.는 그러므로 나는이 내 생성자를 업데이트하는 데 필요한 :

private class Singleton(Context context) { 
    context.getApplicationContext().registerReceiver(mReceiver, INTENT_FILTER); 

이 차이를 만드는 이유는 확실하지. 내 생각 엔 활동 컨텍스트가 파괴되어 BroadcastReceiver와 함께한다는 것입니까? 추가적인 통찰력을 환영합니다!

관련 문제