如何从广播接收器显示对话框

时间:2012-12-11 10:41:58

标签: android

我的android清单文件中设置了广播接收器。但是,当某些情况发生时,我需要显示一个对话框。我意识到应用程序上下文不适用于对话框,我需要在活动上下文中显示它。但即使我这样做,背景屏幕也会变黑并阻挡当前的活动。我不希望这种情况发生。我想在现有屏幕上弹出tp覆盖。我尝试过:

在我从BroadcastReciever调用的活动中

getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);

活动清单:

android:windowBackground="@android:color/transparent"
android:windowIsTranslucent="true"
android:windowAnimationStyle="@android:style/Animation.Translucent"

我做错了什么?

3 个答案:

答案 0 :(得分:1)

startActivity()

并申请android:theme="@android:style/Theme.Dialog"

答案 1 :(得分:0)

您需要启动一个Activity才能执行此操作。当onReceive完成时,BroadcastReceivers将立即退出。如果您使用以对话框为主题的Activity,它将具有与对话框相同的外观。

答案 2 :(得分:0)

你需要一个名为Global或Super对话框的东西

请检查http://www.sherif.mobi/2011/08/creating-global-dialogs.html和此Video

您可以在Github

上获取此代码的源代码

希望这能解决你对话题的关注