2012-10-15 3 views
0

나는 Service을 이용하고 있고 동적으로onDestroy 메서드가 수신기에 존재하지 않습니다. 대안이란 무엇입니까?

private BroadcastReceiver yourCallReceiver; 
yourCallReceiver = new CallReceiver(); 

     // Registers the receiver so that your service will listen for broadcasts 
     registerReceiver(yourCallReceiver, theCallFilter); 

같은 수신기를 등록하고

@Override 
    public void onDestroy() { 
     super.onDestroy(); 

     // Do not forget to unregister the receiver!!! 
     unregisterReceiver(yourCallReceiver); 
    } 

처럼 등록을 취소하지만 난 내가 종료에 내가 수신기의 등록을 취소 whene 몇 가지 작업을 필요로하는 데 문제가 있지만, 수신기 은 (는) onDestroy 메소드가 없습니다. 내가 어떻게 할 수 있니? 서비스중인 수신자를 등록 해제 할 때 제 3 자 작업을 어떻게 중지 할 수 있습니까? 이게 가능한가?

+0

'unregisterReceiver'가 호출 되 자마자'yourCallReceiver'에 사용자 정의 정리 메소드를 호출하는 것이 어떻습니까? – Rajesh

+0

하지만 서비스에서받는 사람의 메서드를 호출 할 수 없습니다? 아니면 내가 할 수 있을까? 예를 들어 줄 수 있습니까? thx – mbrc

답변

2

onDestroy라는 방법을 추가 (또는 그것을 부르기 위하여 당신이 원한다 무엇 이건) 다음과 같이 정의 CallReceiver 클래스 :

public void onDestroy() { 
    super.onDestroy(); 
    // Do not forget to unregister the receiver!!! 
    unregisterReceiver(yourCallReceiver); 
    yourCallReceiver.onDestroy(); 
} 
:

public void onDestroy(){ 
    //Write your clean-up code here 
} 

당신의 서비스의 onDestroy에서, 수신기 개체에 onDestroy 전화

+0

대단히 감사합니다. – mbrc

관련 문제