서비스에서 PHONE_STATE 리시버로 받으려고 테스트하였습니다. 


서비스에서 등록한 Receiver로는 PHONE_STATE 이벤트가 도착하지 않는군요. 


Manifest.xml 에 receiver를 적어 놓았습니다. 


서비스에서 등록한 것과 Manifest.xml에서 적어 놓은 Receiver class는 같은 class name (CallReceiver)입니다. 



실제로 동작시켜보니 CallReceiver의 instance를 빈 라파미터 생성자로 다시 생성하여 동작하네요.

서비스에서 등록해 놓은 instance에게는 이벤트가 전달되지 않고 있습니다. 


서비스에서 등록할 때 사용한 intent action과 xml에서 적어놓은 action은 동일한 string입니다. 


        <receiver android:name="com.androidservice.call.CallReceiver" >

        <intent-filter>

        <action android:name="android.intent.action.PHONE_STATE" />

        </intent-filter>

        </receiver>


public class CallReceiver extends BroadcastReceiver 

{

public CallReceiver()

{  // PHONE_STATE 이벤트가 발생할 때, 원치않게 새로운 instance를 만드는 곳. 원치 않는 인스턴스임  

}

public CallReceiver(SmartLifeService service)

{   // 서비스에서 등록한 CallReceiver .  이 인스턴스로 이벤트가 들어오길 바람.

}