Unity 与 Android 交互:程序运行中手机突然锁屏再解屏程序重新启动的问题

xiaoxiao2021-02-27  337

最近的在做的一个项目,突然找出了这样的BUG:

手机上运行该程序,长时间未使用,手机自动息屏了,再次点亮解锁,发现程序重新启动了,之后进行多次息屏解锁测试,还都有这种情况。。。

之后经过排除法确定,出现BUG的原因在于我添加的那部分与Android交互的那部分代码。

在我的这个项目中,与Android的交互是在第一个场景中,点击某个Button跳转到Android界面,点击返回跳转回来。而且,全部的场景界面都是横屏的,不允许竖屏,但是,但是,但是,Android手机锁屏解锁那个状态是竖屏的,那么,有可能就是这个过程中出现了问题。而这可能涉及到的问题就是Android中的横竖屏切换导致Acitivity的OnDestroy与OnCreate

所以首要考虑的是Android 的 AndroidManifest.xml横竖屏配置出现了问题,最后得出的解决方法是这样的

在需要的Activity这样配置:

<activity           android:name=":YourActivity"           android:configChanges="orientation|keyboardHidden|screenSize"           android:screenOrientation="landscape"> </activity>

必须这三个 "orientation|keyboardHidden|screenSize"都有才行,只有前两个的没用。相关的说法是

4.0版本后需要这样设置横竖平切换才不会重新执行OnCreate,而是会调用onConfigurationChanged()。

然后,在对应的Activity中重写这个方法

@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged( newConfig); if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { //横屏相关操作 return; } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { //竖屏相关操作 return; } }

在网上还看到了类似我遇到的这个问题,但是解决的方法很不一样,这个记录一下他的链接:

http://www.cnblogs.com/newcaoguo/p/5947434.html

转载请注明原文地址: https://www.6miu.com/read-3061.html

最新回复(0)