안드로이드 개발 질문/답변
(글 수 45,052)
Activity 안에... BroadcastReceiver 를 구현하고... 사용 할수는 없나요??
public class MailBoxListActivity extends Activity {
static void call(){
}
static class NotifyChangeReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
call();
}
}
}
<receiver android:name=".NotifyChangeReceiver" android:enabled="true">
<intent-filter>
<action android:name="com.a.xChanged"/>
</intent-filter>
</receiver>
위처럼... Activity 안에 BroadcastReceiver 클래스를 선언하고.... 호출 되면... Activity의 메소드를 호출에..
사용하려 하는데... 호출이 되지 않네요.. 일리갈 Exception 만 뜨고...
꼭 으로 빼고.... 사용해야 하는건가요?? 그럼... 해당 Activity에 알리려면... 다시 intent 를 주고.. Activity를 다시 시작 해야 하거든요..
위젯 처럼... update 를 받으면.. 그냥 그 내용을 바꾸게끔 하고 싶은데...
방법 아시는분 좀 알려 주세요.
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("STUB")) {
....
}
}
}
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("STUB");
registerReceiver(mReceiver, intentFilter);
로 하시면 됩니다.
코드로 짜실 때 주의할 것은 registerReceiver 를 하셨으면 반드시
unregisterReceiver(mReceiver) 를 해 주셔야 한다는 점입니다.
Activity 종료시 registerReceiver 된 receiver 가 unregisterReceiver 되지 않고 남아있으면
릭 났다고 익셉션 뜹니다.