0

我在我的 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"

我究竟做错了什么?

4

3 回答 3

1
startActivity()

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

于 2012-12-11T10:47:36.160 回答
0

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

于 2012-12-11T10:45:21.710 回答
0

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

请查看http://www.sherif.mobi/2011/08/creating-global-dialogs.html和此视频

你也可以在Github上获取源代码

希望这能解决您对对话的担忧

于 2012-12-11T10:52:51.957 回答