问题:返回Unity原来的App中会黑屏一会儿
在这是使用的版本为Unity2019.4.39 ,调用TakePhoto,对图片进行裁剪以及上传保存。
开始接手这个优化时一脸懵逼。后面经过大量的查阅资料,发现是调用Android的Sdk时,UnityPlayerActivity调用onstop,。具体可看下方的生命周期图。
分析:
在Unity没有其他Activity的时候, 打印了如下的一些log
启动App
MainActivity: onCreate
MainActivity: onStart
MainActivity: onResume
MainActivity: onWindowFocusChanged true
点Home进入后台
MainActivity: onPause
MainActivity: onWindowFocusChanged false
MainActivity: onStop
从后台返回Unity
MainActivity: onRestart
MainActivity: onStart
MainActivity: onResume
MainActivity: onWindowFocusChanged true
退出应用
MainActivity: onWindowFocusChanged false
MainActivity: onPause
MainActivity: onStop
MainActivity: onDestroy
当在Unity的Activity有其他的Acivity时,UnityPlayerActivity的生命周期
弹窗显示另外一个Activity
MainActivity: onPause
MainActivity: onWindowFocusChanged false
点Home进入后台
MainActivity: onStop
从后台回来
MainActivity: onRestart
MainActivity: onStart
关闭 弹窗Activity
MainActivity: onResume
MainActivity: onWindowFocusChanged true
通过对比这两次的打印log,可以看出;在返回游戏界面的时候,UnityPlayerActivity没立马调用onResume()和onWindowFocusChanged(true)
MainActivity: onResume
MainActivity: onWindowFocusChanged true
我想到的第一次解决方法是,手动加调用onResume,onWindowFocusChanged这两个函数,但是这样做的弊端是会打断原来是生命周期。
目前菜菜的我只能使用这样的方法。
看了许多资料,说是让游戏中自己去处理,没有找到的好的解决方案,如何后期解决了,会再来进行更新。