一、 问题现象
当有其他Activity在Unity所在的Activity之上的时候,Unity游戏从后台返回到游戏时,会出现黑屏的现象,比如:
正常时:

从后台返回时:

二、 问题分析
1)当Unity所在的Activity之上没有其他Activity时候,生命周期的变化如下:

启动App
D/MainActivity: onCreate
D/MainActivity: onStart
D/MainActivity: onResume
D/MainActivity: onWindowFocusChanged true点Home进入后台
D/MainActivity: onPause
D/MainActivity: onWindowFocusChanged false
D/MainActivity: onStop从后台回来
D/MainActivity: onRestart
D/MainActivity: onStart
D/MainActivity: onResume
D/MainActivity: onWindowFocusChanged true退出应用
D/MainActivity: onWindowFocusChanged false
D/MainActivity: onPause
D/MainActivity: onStop
D/MainActivity: onDestroy

2)当Unity所在的Activity之上有其他Activity有其他Activity时候,生命周期的变化如下:

弹窗显示另外一个Activity
D/MainActivity: onPause
D/MainActivity: onWindowFocusChanged false点Home进入后台
D/MainActivity: onStop从后台回来
D/MainActivity: onRestart
D/MainActivity: onStart关闭 弹窗Activity
D/MainActivity: onResume
D/MainActivity: onWindowFocusChanged true

3)对比两次的日志打印,我们可以发现:第二次从后台返回少了两个生命周期的调用

D/MainActivity: onResume
D/MainActivity: onWindowFocusChanged true

4)综上分析所得,要想做到从后台返回不黑屏,要么游戏自己得去处理好,从后台返回时,游戏内容的恢复;要么就是在Android层面上,手动加调用onResume,onWindowFocusChanged
三、 解决方案

对Unity提供的class.jar进行反编译,然后在UnityPlayerActivity类中的onStart方法中增加调用onResume,onWindowFocusChanged,经测试,确实是解决了黑屏的问题。不过最好的解决方法还是游戏方去处理,这个会影响到unity的正常生命

public void onStart() {super.onStart();this.mUnityPlayer.resume();onWindowFocusChanged(true);
}

Android解决Unity游戏从后台返回黑屏问题相关推荐

  1. 红米note 4x播放视频切后台返回黑屏问题

    问题 使用mediaPlay+TextureView播放和显示视频,在红米note4x上视频播放时切后台返回时视频区域黑屏,提示音频可以继续播放,在其他手机上播放时没有这种问题. 代码 class V ...

  2. android游戏黑屏,第五人格游戏进不去黑屏解决办法

    小编今天给各位玩家朋友们带来的是第五人格游戏进不去黑屏解决办法,很多的玩家朋友们在第五人格更新后都出现了黑屏.游戏无法进入等情况,这应该怎么办呢?小编把解决方法给大家整理在了下方,感兴趣的小伙伴们快来 ...

  3. 第五人格服务器维护中怎么进游戏,第五人格游戏进不去黑屏怎么解决 第五人格游戏进不去黑屏解决攻略...

    <第五人格>是由网易推出的首款3D视角恐怖冒险解谜手游,采用了非对称对抗竞技玩法模式,不断探索,根据剧情任务来获得线索,剥开重重迷雾... 类型:动作冒险 大小:633.90M 语言:简体 ...

  4. 滑动返回类库SwipeBackLayout的使用问题,解决返回黑屏,和看到桌面

    滑动返回类库SwipeBackLayout的使用问题,解决返回黑屏,和看到桌面 参考文章: (1)滑动返回类库SwipeBackLayout的使用问题,解决返回黑屏,和看到桌面 (2)https:// ...

  5. 游戏屏幕外渲染黑屏_看Nintendos在屏幕外的精灵渲染故障

    游戏屏幕外渲染黑屏 While I was capturing some game footage from Zelda II, I noticed a strange little glitch. ...

  6. 解决自己电脑VMware打开虚拟机黑屏问题

    解决自己电脑VMware打开虚拟机黑屏问题 参考文章: (1)解决自己电脑VMware打开虚拟机黑屏问题 (2)https://www.cnblogs.com/cookiewu/p/10363118. ...

  7. linux黑屏无法唤醒,解决笔记本CentOS7合盖后黑屏无法唤醒

    解决笔记本CentOS7合盖后黑屏无法唤醒 启用并修改/etc/system/logind.conf 的 HandleLidSwitch=lock 保存后运行 systemctl restart sy ...

  8. 【Inter集显 GTX1650】解决 Windows 10 连接 HDMI 外接显示器黑屏状况小结

    解决只集显下外接显示器黑屏问题策略小结 基本信息 情景还原 采用策略 无效策略 [混合有效]混合策略 [有效]有效策略1 [有效]有效策略2 后备策略 参考信息源 基本信息 OS:Windows 10 ...

  9. 为什么我的MapInfo地图老是返回黑屏

    我在地图上建了临时图层,然后从数据库取出数据更新到临时图层的图元Feature的列上,但是放大缩小地图是经常返回黑屏地图,提示信息:尝试读写受保护的内存.通常指示其他内存已损坏.

最新文章

  1. 调试linux内核前的多虚拟机网络配置(图文教程)
  2. objective-c @class 类名和#improt 类名.h的区别
  3. 三十二、数据库设计的三范式【完】
  4. 在Win10下解压linux压缩包,Win10如何解压缩文件?win10使用命令行来解压缩文件的方法...
  5. python北京理工大学推荐的书-2020最新的学Python编程的五本必读好书
  6. 俄罗斯为何把微积分下放到中学讲授?
  7. 三层神经网络实现手写数字的识别(基于tensorflow)
  8. mysql 事件状态enable_mysql事件 - wayhk的个人页面 - OSCHINA - 中文开源技术交流社区...
  9. linux中查找find命令的程序文件,如何使用find命令在Linux中查找文件
  10. RedisTemplate 常用方法、序列化方式、基于 Redis 实现分布式锁
  11. 玩转DataGridView之实现两个GRID间行的拖拽
  12. 2021-07-11 layer与tier的区别(英语)
  13. Micrium DEMO9S12NE64 uCOS-II 官方包 调试记录!
  14. mysql_assoc函数_关于PHP的函数mysql_fetch_assoc的问题
  15. IP座席接入系统方案
  16. 传奇GOM引擎登陆器配置教程 GOM登陆器配置详解 GOM引擎登陆器图文教程
  17. 晨风机器人卡片/文字双切配置
  18. 【数据结构系列】双向链表
  19. [转载]投资正道vs冯时能30年股票投资16心得
  20. 单极霍尔开关SS1368 无刷直流电机用

热门文章

  1. 宁波新基建之路 基于制造优势破题智慧发展
  2. 【Android 应用】连续多个emoji导致显示不全的的问题
  3. JDK8升级JDK9 HTT2 TLS问题解决之路(艰辛)
  4. CART-回归树 实例
  5. 牛客面试必考真题【算法篇】高频Top200 题目汇总
  6. 2016太原UI设计师讲PS、AI{图像描摹}如何使用?
  7. Android 照片涂鸦4-5
  8. 纠正英文句子的拼写错误textblob模块中correct方法
  9. Tensorflow深度学习实战之(五)--保存与恢复模型
  10. Linux运行jar包命令