3

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!

smitten
  • 311
  • 2
  • 5
  • 13

1 Answers1

7

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
  • 986,068
  • 189
  • 2,389
  • 2,491
  • 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 Oct 01 '10 at 00:14
  • @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 Oct 01 '10 at 00:29
  • If using intent from broadcast receiver add : intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); – Karan Jun 04 '15 at 20:54