【发布时间】: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'作为显示对话框的活动!
标签: android android-alertdialog