내가 애플리케이션 컨텍스트를 사용하여 내 activtiy과 서비스 방송을 만들기 위해 LocalBroadcastManager를 사용하고 A 활동에 방송을 수신하지 : LocalBroadcastManager이 같은
public class CommonForApp extends Application{
public void broadcastUpdateUICommand(String[] updateFlags,
String[] flagValues) {
Intent intent = new Intent(UPDATE_UI_BROADCAST);
for (int i = 0; i < updateFlags.length; i++) {
intent.putExtra(updateFlags[i], flagValues[i]);
}
mLocalBroadcastManager = LocalBroadcastManager.getInstance(mContext);
mLocalBroadcastManager.sendBroadcast(intent);
}}
지금 내 서비스에 리스너를 사용하여, 나는 broadcastUpdateUICommand을 (호출 오전)이 같은 :
public class mService extends Service {
public BuildNowPLaylistListListener buildCursorListener = new BuildNowPLaylistListListener() {
@Override
public void onServiceListReady() {
mApp.broadcastUpdateUICommand(
new String[] { CommonForApp.INIT_DRAWER},
new String[] {""});
}}}
그리고 난 이렇게 내 활동의 방송을 수신하고 있습니다 :
public class mActivity extends Activity{
BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
mtoast.showtext("in onreceive"); //toast to check
if (intent.hasExtra(CommonForApp.INIT_DRAWER))
initialiseDrawer();
}};
}
mApp는 Application의 인스턴스입니다. CommonForApp는 내 응용 프로그램 클래스입니다.
그러나 내 활동에서 브로드 캐스트를 수신하지 못했습니다 (브로드 캐스트 관리자는 응용 프로그램 컨텍스트를 사용하여 초기화 됨).
누구든지 내가 내 활동에서 방송을 수신하지 못하는 이유를 제안 할 수 있습니까? ..
. 미리 감사드립니다! 활동
이유 ... Plz은 –
인'당신이 브로드 캐스트를 보낼 때 Activity' 실행? Receiver에 'IntentFilter'를'Activity'에 등록하고 싶습니까? 또한 '서비스'에서 직접 방송하면 어떨까요? –
활동중인 메시지의 등록은 어디에 있습니까? –