解决android界面无法保持全屏状态的问题
2012-10-24 10:51
1421 查看
往往我们在oncreate里面或是在xml里面设置一个界面为全屏。打开这个界面时是全屏的,但是比如我们在不退出的情况下按“锁屏键”或“home键”,然后再解锁或再次打开,那么这个界面就不再是全屏的了,要过大概几秒时间才会恢复。
下面我们就解决这个问题。
如图activity的生命周期:
当界面在按“home键”之后,会进入到onstop,并从界面中消失,显示手机桌面,自然就会有状态栏,当我们将他唤醒之后,直接走的是restart方法,并不会走oncreate,也就不会再次设置全屏。
当界面在按“电源键”之后,会进入到onpause状态,再次打开时,部分手机会停顿几秒甚至几十秒才会恢复全屏。onpause恢复时走的是onresume方法。所以我们在onresume方法中将页面在此设置为全屏就能解决了。
下面是检测是否为全屏的代码,位于OnResume():
你们可以看到我在if和else里面都重新设置了全屏,这是因为我们在oncreate的时候已经设置过全屏,这里的非全屏并不是真正的非全屏,只是停顿。我们重新设置来加快激活而已。
下面我们就解决这个问题。
如图activity的生命周期:
当界面在按“home键”之后,会进入到onstop,并从界面中消失,显示手机桌面,自然就会有状态栏,当我们将他唤醒之后,直接走的是restart方法,并不会走oncreate,也就不会再次设置全屏。
当界面在按“电源键”之后,会进入到onpause状态,再次打开时,部分手机会停顿几秒甚至几十秒才会恢复全屏。onpause恢复时走的是onresume方法。所以我们在onresume方法中将页面在此设置为全屏就能解决了。
下面是检测是否为全屏的代码,位于OnResume():
int v = this.getWindow().getAttributes().flags; // 全屏 66816 - 非全屏 65792,你们可以将if和else减为一个,这里只做提示使用 if(v != 66816){//非全屏 this.getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); Toast.makeText(StartActivity.this, "设置全屏", Toast.LENGTH_LONG).show(); }else{ this.getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); Toast.makeText(StartActivity.this, "强制设置全屏", Toast.LENGTH_LONG).show(); }
你们可以看到我在if和else里面都重新设置了全屏,这是因为我们在oncreate的时候已经设置过全屏,这里的非全屏并不是真正的非全屏,只是停顿。我们重新设置来加快激活而已。
相关文章推荐
- Android使用的webcview中带有音乐播放控件,在关闭或分享时处于界面不可见状态下,声音仍在播放的问题解决
- 【android学习3】解决Android界面布局添加EditView之后无法预览问题
- 解决vue跨域请求无法携带cookie,进而无法在服务器端设置session保持数据(状态)的问题
- Android:解决全屏界面到带有状态栏界面切换问题
- 解决Android编辑框在全屏模式下无法检测布局变化的问题
- 解决Android编辑框在全屏模式下无法检测布局变化的问题
- Android 使用友盟分享SDK,分享到QQ成功后,遇到app被销毁后,回到此分享界面无法正常点击界面问题。--连QQ都忘记处理的activity状态恢复问题
- Android使用的webcview中带有音乐播放控件,在关闭或分享时处于界面不可见状态下,声音仍在播放的问题解决
- 解决Android编辑框在全屏模式下无法检测布局变化的问题
- 如何解决android应用在大屏幕手机或者平板电脑无法全屏显示的问题
- android窗口泄漏,isInEditMode解决可视化编辑器无法识别自定义控件的问题
- zookeeper在启动的时候遇到启动无法查看集群状态的问题-------已解决
- 解决android EventBus 注册事件后但还无法相应事件的问题
- android google map 开发中的常见问题及解决(无法获取 google map apiKey 和Couldn't get connection factory client)
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
- android app -- 关于listview的几种用法(复用,不复用,半复用)解决item状态改变的问题
- 解决Android Studio 2.2.3中添加.cpp .h文件在Project->Android无法显示,无法正常编译问题。
- 转载--解决VMWare下ubuntu无法全屏的问题
- 解决服务器无法在已发送 HTTP 标头之后设置状态导致的一个问题
- win10文件资源管理器只在任务栏呈最小化状态,无法访问问题解决