活动没有足够快地暂停

nhjlsmyf  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(182)

在appcompatactivity中,我在特定事件中显示一个alertdialog。
一旦显示alertdialog,用户就不能再单击我的appcompatactivity中的任何内容。
我尝试禁用onpause()中的活动: getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 检查是否暂停: getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED) 但是onpause()的调用速度似乎不够快。
我可以在每次暂停appcompatactivity时将静态布尔值设置为true,在onresume()中将其设置为false,并在每个onclicklistener/ontouchtlistener中检查它,但是有更好的方法吗?
感谢您的帮助!
编辑:谢谢你的评论!我发现,当我在ui线程启动时(用于打开alertdialog)在屏幕上单击时,单击被放入一个队列中。这就是为什么在alertdialog运行时执行click事件。我需要保存alertdialog并检查它是否正在运行还是有更好的方法?

vxf3dgd4

vxf3dgd41#

我相信你应该让我们更多地了解你的代码。不过,我想我能猜出你在说什么。有一个 setEnabled(false) 方法,如果您在视图组件java对象上调用它,它将被禁用并且不再可单击。因此,只要在需要显示alertdialog时禁用组件,然后通过调用 setEnabled(true) 如果你愿意的话。我很确定暂停活动不是你应该做的。因为手动操作根本不是最佳实践。

相关问题