tom*_*101 1 flags android android-activity
这是我的一项活动中的一个小代码.
Window window = this.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
window.addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)
我已经设置了清单以允许使用WAKE_LOCK.现在,我不确定的是在一个活动中设置的标志.
如果许多活动中的一个向窗口"添加"一个标志,如屏幕保护标志,它们是否在整个应用程序中持久存在?
我的预感是,如果活动要设置或添加标志,则仅当标记的活动处于活动状态时,该标志才有效.如果它调用Intent来启动另一个活动(没有指定标志),则set标志将被取消,直到有意的,未标记的活动结束,然后它可以恢复到标记活动中的原始设置状态.
我错了吗?提前致谢.
在Window活动开始时总是复位(onCreate)。您不会向某些全局应用程序窗口状态添加标志。
您需要Window为每个Activity单独设置。
如果它调用一个 Intent 来启动另一个活动..
.. 调用Activity被销毁并Activity创建一个新的。新的有一个重置窗口,一旦你回到初始状态,Activity它就会再次重置窗口。但是您应该onCreate在可以Window再次设置的地方被调用。
有趣的问题最好用实验解决:
我只是通过编写一个带有两个活动的小应用程序来测试它,一个通过单击按钮打开另一个.我已将屏幕超时设置为15秒.
Activity1包含用于在其onCreate()Method中保持屏幕的命令,Activity2不包括.现在,当Activity1可见时,屏幕不会关闭(显然).我打开Activity2后15秒,确实如此.所以你是对的,只有活动显示时,Flag才有效.
有趣的是,你是否调用finish()Activity1 并不重要.即使Activity1未被销毁(onDestroy()仅被调用onPause()),该标志也将无效.
如果返回到第一个Activity,onCreate()则实际上在Activity1上没有再次调用,但是Flag再次有效(因为活动是从具有先前功能的堆栈中恢复的).
| 归档时间: |
|
| 查看次数: |
4755 次 |
| 最近记录: |