IT | Computer/안드로이드

Inner Class 형태로 Broadcast Receiver 구현

바람난후제 2012. 11. 20. 17:32
반응형

Service나 Activity Class에 속하도록 Broadcast Receiver를 작성할 때가 있다.


이럴 때, Broadcast 메시지가 발생하여도 Broadcast Receiver의 경로를 못찾아 에러가 발생할 수 있다.


해결책은 AndroidManifest.xml 파일에 Outer Class의 이름과 Inner Class 의 이름을 같이 써 주어야 한다.


예를 들어


public class Out extends Activity {

...

public class In extends BroadcastReceiver {

...

}

}


일 경우,


AndroidManifest.xml 파일을 아래처럼 하여야 한다.


<receiver android:name=".Out$In"

            android:enabled="true">

<intent-filter>

<action android:name="android.bluetooth.device.action.ACL_CONNECTED"/>

...

</intent-filter>

</receiver>


".{Outer Class 이름}${Inner Class 이름}" 으로 설정을 하여야 정확히 위치를 찾아 BroadcastReceiver 수행이 가능하다. ^^

더불어, Inner Class의 경우 static Class로 정의하는 것이 문제없이 사용이 가능할 것이다.

반응형