gpt4 book ai didi

Android 窗口标志 : Are flags set in an activty persistent throughout the entire app itself?

转载 作者:行者123 更新时间:2023-11-29 14:28:19 25 4
gpt4 key购买 nike

这是我的一个 Activity 中的一小段代码。

Window window = this.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
window.addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);

我已经将 list 设置为允许使用 WAKE_LOCK 的权限。现在,我不确定的是在一项 Activity 中设置的标志。

如果许多 Activity 中的一个向窗口“添加”一个标志,例如屏幕保护程序标志,它们是否会在整个应用程序中持久存在?

我的直觉是,如果一个 Activity 要设置或添加一个标志,则只有在被标记的 Activity 处于 Activity 状态时,该标志才处于 Activity 状态。如果它调用 Intent 来启动另一个 Activity (未指定标志),则设置标志将被取消,直到有意的、未标记的 Activity 完成,然后它可能恢复到其在标记 Activity 中的原始设置状态。

我错了吗?提前致谢。

最佳答案

最好通过实验解决的有趣问题:

我刚刚通过编写一个包含两个 Activity 的小应用程序对其进行了测试,一个通过单击按钮打开另一个。我已将屏幕超时设置为 15 秒。

Activity1 在其 onCreate() 方法中包含保持屏幕打开的命令,而 Activity2 则没有。现在,当 Activity1 可见时,屏幕不会关闭(很明显)。在我打开 Activity2 15 秒后,它确实如此。所以你是对的,只有在显示 Activity 时,Flag 才有效。

有趣的是,您是否在 Activity1 上调用 finish() 并不重要。即使 Activity1 没有被销毁(onDestroy() 没有被调用,只有 onPause())这个标志也会无效。

如果您返回到第一个 Activity,onCreate() 实际上不会在 Activity1 上再次调用,但 Flag 再次有效(因为该 Activity 是从具有其先前功能的 Stack 中恢复的)。

关于Android 窗口标志 : Are flags set in an activty persistent throughout the entire app itself?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12259455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com