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
或修改它们。我在特定情况下遇到问题。让,我有一个需要读/写权限的活动,相机权限。当用户进入活动时,我请求权限,如果被授予的用户可以留在那里并使用该活动,否则我会显示 Toast
说 Permission Denied! 并退出该活动。如果用户勾选阻止显示权限,并且如果他进行该活动,则会显示 Toast
Permission Denied! 并在不请求进一步许可的情况下退出。勾选此阻止显示权限对话框后,用户将永远无法使用该Activity
。所以我想在活动退出时显示AlertDialog
。但问题在于活动正在退出,所以对话框也是如此。所以我想要一个AlertDialog
,我将在onDestroy()
期间显示它,它仍然会显示在堆栈上的下一个Activity
之上。
【问题讨论】:
我建议您使用相机活动关闭时开始的活动的onActivityResult()
。您可以从相机活动中设置结果,检查活动onActivityResult()
中的结果代码,然后显示Dialog
,它将位于堆栈中下一个Activity
的顶部
要创建一个警报对话框,我必须将 Context 引用传递给该 AlertDialog,因为 Context 是 Activity 的超类,当我当前的 Activity 完成时它将被销毁。所以我没有得到最后的活动参考
没关系,您可以使用onActivityResult
中的上下文(活动)
我将关闭那个调用 onActivityResult 的活动,因为用户拒绝了权限。所以我需要一些可以全局引用的东西,它将位于堆栈上的前一个活动之上
你必须使用你刚刚调用的活动'previous'作为显示对话框的活动!
【参考方案1】:
也许您应该只使用另一个以对话框为主题的活动。
【讨论】:
以上是关于Android - AlertDialog 位于任何活动之上,不依赖于特定活动的主要内容,如果未能解决你的问题,请参考以下文章