cocos2d-x 保持屏幕点亮及自动变灰
很早之前遇到的问题,现在记录一下。有一家Android渠道(抱歉,时间太长了已经记不大清楚是哪一家了 oppo/联想/酷派?)在我们提交新版本时拒绝了,理由是:手机背光状态下,屏幕不会自动变灰。
这里为了测试,我将它改为30秒,这样做有什么影响呢?就是开启任何一个应用,在30秒之内,我如果没有任何的操作,就自动锁屏了。你可以拿你的手机试一下,比如打开微信然后放在那里不动,30之后它表现出来的的效果跟按了电源键锁屏类似。但还是有区别滴:
1)它有一个过渡阶段:屏幕由亮变暗,几秒之后屏幕才黑掉,需要通过按电源键来恢复;
2)没有解除屏幕保护的过程:当按下电源键后,屏幕重新被点亮,显示的就是上一次的界面,比如前面讲的微信的界面,而直接通过按电源键关闭屏幕的,而且你设置过屏幕保护(比如人脸解锁、图案解锁、数字密码解锁、混合密码解锁等等),再次按下电源键点亮屏幕时是先需要解除屏幕保护的;
3)没有声音:背光倒计时结束后,屏幕黑掉,没有声音,按电源键重新点亮屏幕也没有声音,而通过电源键关闭和点亮屏幕默认都是有声音的;
游戏存在的问题是,无论等待多长时间,屏幕一直被点亮,这样会导致一个问题:耗电会快,因为你游戏一直开在那里,CPU和屏幕都是需要手机电池供电的。要解决这个问题,先来了解一下Android中最重要的组件Activity,它的生命周期:
(图片来源百度经验:安卓Activity生命周期详解)
要解决上面说的那个问题,也就是当Activity的onResume()被调用后,需要保持屏幕始终被点亮,当onPause()被调用后,要释放屏幕始终被点亮,从而转交给系统进行默认处理。
关于Android屏幕锁定,一搜网上就有很多参考资料,我找了一些也试了很多,发现都无法满足要求,最后找到一篇关于FLAG_KEEP_SCREEN_ON的文章才解决掉,废话不多了,直接上代码:
@Override
protected void onPause(){
//todo
closeKeepScreenOn();
super.onPause();
}
@Override
protected void onResume() {
//todo
openKeepScreenOn();
super.onResume();
}
public boolean bFlagKeepScreen = true;
// 开启屏幕始终点亮
public void openKeepScreenOn()
{
closeKeepScreenOn();
if (bFlagKeepScreen)
{
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Log.i("FLAG_KEEP_SCREEN_ON", "open");
}
} // 关闭屏幕始终点亮
public void closeKeepScreenOn()
{
if (bFlagKeepScreen)
{
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Log.i("FLAG_KEEP_SCREEN_ON", "close");
}
}
参考资料:
Android 屏幕锁 - FLAG_KEEP_SCREEN_ON
Keep the screen awake throughout my activity
Cocos2dx 解决在Android平台运行游戏长时间不操作,导致的锁屏问题
cocos2d-x 保持屏幕点亮及自动变灰的更多相关文章
- 【WP开发】在手机屏幕点亮时播放声音
今天说的内容有点流氓,请诸君在开发应用时谨慎使用. 那么,这活儿到底有多流氓呢? 先介绍一下要实现的功能:当用户按电源键(也可以是双击屏幕)点亮手机的屏幕时播放一下短音乐,而且应用程序可以不在前台运行 ...
- cocos2d-x 如何保持屏幕常亮
转自:http://blog.csdn.net/wolfking_2009/article/details/8939027 貌似cocos2d-x没有接口直接做这个功能 而各个平台又不一样,所以只能对 ...
- win10 uwp 屏幕常亮
我们在播放视频需要屏幕常亮,我们可以使用DisplayRequest,因为代码简单我直接写,代码来自https://msdn.microsoft.com/en-us/library/windows/a ...
- LongLightUtils【保持屏幕常亮工具类】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里只是简单记录下保持屏幕常亮工具类LongLightUtils的使用,具体请阅读参考资料<Android屏幕常亮,其实很简单 ...
- Xamarin Essentials教程屏幕常亮ScreenLock
Xamarin Essentials教程屏幕常亮ScreenLock 在一段时间内,如果用户没有对设备进行操作,设备就会自动关闭屏幕.用户必须手动操作,才能点亮屏幕.但是很多应用需要在用户没有操作 ...
- 完美实现Android的屏幕常亮功能
笔者所在公司做的APP是股票类的,用户在查看股票报价页面的时候,往往需要开启盯盘模式,这个时候屏幕是不能黑屏的,黑屏会导致用户看不到一些关键报价涨跌,错过了买入卖出的最佳时机,就会给用户造成损失,这是 ...
- Android保持屏幕常亮
Android保持屏幕常亮,PowerManager.WakeLock的使用 package com.hebaijun.wakelock; import android.app.Activi ...
- 性能优化-屏幕常亮与CPU唤醒
Android在不使用的时候,屏幕在一段时间以后会变暗,再过一段时间就会熄屏,此时CPU就会休眠,那么在这个时候,Timer.Handler.Thread.Service等都会暂停,有时候我们需要屏幕 ...
- 用css3实现鼠标移进去当前亮其他变灰
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- .NetCore下 Exceptionless 分布式日志的个性化处理
Event Type 在Exceptionless中有 Exception .LogMessage.Broken Links .Feature Usages 接下来就这几种类型分别添加日志记录 Exc ...
- 使用Sublime Text 3的HTML-CSS-JS Prettify插件格式化代码
很多时候,我们想要格式化HTML-CSS-JS代码,网站上有很多实现此功能的小工具,当然,我的网站首页也有.但是,如果我们的代码编辑器上面也有这样的功能,那不是更加快速便捷?So,接下来,我们看看Su ...
- CSS------让ul中高度不同的li底部对齐
如图: 代码:(需要将li中vertical-align属性设置为bottom) <ul style="margin-top:50px"> <li style=& ...
- python3脚本获取本机公网ip
python脚本获取本机公网ip 1.获取公网IP地址方式,访问:http://txt.go.sohu.com/ip/soip 2.代码实现 import requests import re r ...
- Javascript数组Array的方法总结!
1.join() 将数组的元素组成一个字符串,以分隔符连接,如果省略则默认逗号为分隔符,该方法只接收一个参数:分隔符.此方法不会改变原数组. let arr = [1,2,3,4] let arr1 ...
- linux学习笔记-2.常用命令
说明:安装linux时,创建一个luao用户,然后使用root用户登陆系统 1.进入到用户根目录 cd ~ 或 cd cd / 返回到根目录 2.查看当前所在目录 pwd 3.进入到luao用户根目录 ...
- Java 内存模型 ,一篇就够了!
Java 虚拟机 我们都知道 Java 语言的可以跨平台的,这其中的核心是因为存在 Java 虚拟机这个玩意.虚拟机,顾名思义就是虚拟的机器,这不是真实存在的硬件,但是却可以和不同的底层平台进行交 ...
- InnoDB的锁机制浅析(五)—死锁场景(Insert死锁)
可能的死锁场景 文章总共分为五个部分: InnoDB的锁机制浅析(一)-基本概念/兼容矩阵 InnoDB的锁机制浅析(二)-探索InnoDB中的锁(Record锁/Gap锁/Next-key锁/插入意 ...
- Nessus漏洞扫描教程之安装Nessus工具
Nessus漏洞扫描教程之安装Nessus工具 Nessus基础知识 Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它.该工具提供完整的电脑漏洞扫描服务,并随时更新其 ...
- Web大前端面试题-Day2
1.伪类与伪元素的区别? 1) 定义区别 伪类 伪类用于选择DOM树之外的信息,或是不能用简单选择器进行表示的信息. 前者包含那些匹配指定状态的元素,比如:visited,:active:后者包含那些 ...