제목 그대로 BroadcastReceiver에서 Activity나 Dialog를 띄우는 법이 궁금합니다.

현재 만드는 어플이

최초에 ACTION_BOOT_COMPLETE가 되면

AlarmManager를 생성해 setRepeating시켜 줍니다.

그리고 AlarmManager를 통해 다시 호출된 Receiver에서 Activity나 Dialog를 띄워주고 싶은데요 !!

현재

onReceiver함수에서 넘겨받은 Context 객체로 통해 Activity를 시작시키면 되는 걸로 알고 있는데 되지가 않습니다.

예를 들면 context.startActivity(intent) 이런 식으로 해도 흔히 말하는 sorry창이 뜨고

안되서 Dialog로 시도해봤지만 Dialog 생성할 때

Dialog d = new Dialog(context);

이런 식으로 해줬더니 역시 sorry창이 뜹니다.

Dialog를 사용하였을 때의 Logcat창을 보면 이런식으로 뜹니다.

02-18 14:16:02.058: ERROR/AndroidRuntime(190): java.lang.RuntimeException: Unable to start receiver com.android.prayer.AlarmService: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2631)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.app.ActivityThread.access$3100(ActivityThread.java:119)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1898)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.os.Looper.loop(Looper.java:123)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.app.ActivityThread.main(ActivityThread.java:4338)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at java.lang.reflect.Method.invokeNative(Native Method)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at java.lang.reflect.Method.invoke(Method.java:521)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at dalvik.system.NativeStart.main(Native Method)
02-18 14:16:02.058: ERROR/AndroidRuntime(190): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.view.ViewRoot.setView(ViewRoot.java:472)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.app.Dialog.show(Dialog.java:239)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at com.android.prayer.AlarmService.onReceive(AlarmService.java:73)
02-18 14:16:02.058: ERROR/AndroidRuntime(190):     at android.app.ActivityThread.handleReceiver(ActivityThread.java:2622)


버전은 2.0.1입니다 !