Android 如何显示来自广播接收器的对话框

Android 如何显示来自广播接收器的对话框,android,Android,我在android清单文件中设置了广播接收器。然而,当某些情况发生时,我需要显示一个对话框。我意识到应用程序上下文不适用于对话框,我需要在活动上下文中显示它。但即使我这样做,背景屏幕也会变黑并阻止当前活动。我不希望这种事发生。我希望弹出tp覆盖在现有屏幕上。我所尝试的: 在活动中,我从我的广播接收器调用: getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); getWindow().addFlags(Window

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

在活动中,我从我的
广播接收器调用:

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"

我做错了什么?

你需要开始一项活动才能做到这一点。onReceive完成后,BroadcastReceiver将立即退出。如果使用以对话框为主题的活动,它将具有与对话框相同的外观

startActivity()

并应用
android:theme=“@android:style/theme.Dialog”

为此,您需要一个名为全局或超级对话框的东西

请检查一下这个

您也可以在上获取此的源代码

希望这将解决您对dialog的担忧