如何在Android广播接收器中显示对话框?

3
理想情况下,我不想启动一个活动来完成这个任务。当Wi-Fi连接丢失时,我的应用程序需要关闭,因为这对我们来说是致命错误。我希望显示一个错误消息,并让用户按下“确定”按钮,然后退出应用程序。如何处理最好?谢谢!
1个回答

7
据我所知,只有活动才能显示对话框。如果是这样,并且您的BroadcastReceiver是通过registerReceiver()由活动注册的,则可以使用该活动。但是,如果您的BroadcastReceiver在清单中注册,我认为您将别无选择,只能做其他事情。
例如,您可以发送一个有序广播Intent。如果您当前正在运行的活动具有高优先级的该Intent BroadcastReceiver,则可以在接收广播时弹出对话框。但是,如果您的所有活动都没有在屏幕上显示,您可以使用已在清单中注册的低优先级BroadcastReceiver捕获广播,如果您想要显示通知或其他内容。这篇博客文章涵盖了更多关于此模式的内容: 链接

我正在通过registerReceiver()注册接收器,但是当我尝试从onReceive方法中显示对话框时,它没有显示出来。可能的问题是什么? - smitten
@smitten:不确定您在对话框中使用的是哪个“Context”——请确保它是“Activity”。否则,据我所知,那应该可以正常工作。 - CommonsWare
如果在广播接收器中使用意图,请添加:intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - Karan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接