views:

65

answers:

1

Ideally, I do not want to start an activity to do this. When the WiFi connection is lost, my app needs to close because this is a fatal error for us. I want to display an error message and have the user press an Ok button and then exit the app. What is the best way to go about this?

Thanks!

A: 

AFAIK, only activities can display dialogs. If so, and if your BroadcastReceiver is registered by an activity via registerReceiver(), you're set -- just use that activity. If, however, your BroadcastReceiver is registered in the manifest, I think you will have no choice but to do something else.

For example, you could send an ordered broadcast Intent. Your currently-running activity -- if any -- would have a high-priority BroadcastReceiver for that Intent, then can pop a dialog when it receives the broadcast. If, however, none of your activities are on screen, you could have a manifest-registered low-priority BroadcastReceiver pick up the broadcast, if you wanted to display a Notification or something. Here is a blog post that covers a bit more about this pattern.

CommonsWare
I am registering the receiver via registerReceiver() but when I try to display the dialog from onReceive method, it does not show up. What could be the problem?
smitten
@smitten: Not sure what `Context` you are using for the dialog -- make sure it is the `Activity`. Otherwise, AFAIK, that should work just fine.
CommonsWare
Something else was wrong. This works! Thanks.
smitten