Android - AlertDialog 位于任何活动之上,不依赖于特定活动

Posted

技术标签:

【中文标题】Android - AlertDialog 位于任何活动之上,不依赖于特定活动【英文标题】:Android - AlertDialog on top of any activity without dependency of a particular activity 【发布时间】:2018-03-02 09:50:50 【问题描述】:

我可以在任何Activity 上创建AlertDialog 或修改它们。我在特定情况下遇到问题。让,我有一个需要读/写权限的活动,相机权限。当用户进入活动时,我请求权限,如果被授予的用户可以留在那里并使用该活动,否则我会显示 ToastPermission Denied! 并退出该活动。如果用户勾选阻止显示权限,并且如果他进行该活动,则会显示 Toast Permission Denied! 并在不请求进一步许可的情况下退出。勾选此阻止显示权限对话框后,用户将永远无法使用该Activity。所以我想在活动退出时显示AlertDialog。但问题在于活动正在退出,所以对话框也是如此。所以我想要一个AlertDialog,我将在onDestroy() 期间显示它,它仍然会显示在堆栈上的下一个Activity 之上。

【问题讨论】:

我建议您使用相机活动关闭时开始的活动的onActivityResult()。您可以从相机活动中设置结果,检查活动onActivityResult() 中的结果代码,然后显示Dialog,它将位于堆栈中下一个Activity 的顶部 要创建一个警报对话框,我必须将 Context 引用传递给该 AlertDialog,因为 Context 是 Activity 的超类,当我当前的 Activity 完成时它将被销毁。所以我没有得到最后的活动参考 没关系,您可以使用onActivityResult中的上下文(活动) 我将关闭那个调用 onActivityResult 的活动,因为用户拒绝了权限。所以我需要一些可以全局引用的东西,它将位于堆栈上的前一个活动之上 你必须使用你刚刚调用的活动'previous'作为显示对话框的活动! 【参考方案1】:

也许您应该只使用另一个以对话框为主题的活动。

【讨论】:

以上是关于Android - AlertDialog 位于任何活动之上,不依赖于特定活动的主要内容,如果未能解决你的问题,请参考以下文章

转载android AlertDialog

Android:如何设置AlertDialog的宽度和高度,以及AlertDialog风格的按钮?

使用 AlertDialog 调用函数

Android常见控件— — —AlertDialog

Android AlertDialog

转Android对话框 AlertDialog -- 不错不错