如标题所示,我要反应的问题是:
在最新版本的引擎中,如果在游戏中弹出一个android的对话框的话,然后点击home 切出去,再回来 ,会黑屏,希望项目组的人看到这个问题。
尽快解决。。。!!!!!!!!!!!!!!!!!
能给重现的例子吗?
我也碰到了这个问题,按钮弹窗是直接添加在Cocos2dActivity mFrameLayout上,弹窗后锁屏,解锁屏幕后,会只显示弹窗,游戏是黑屏的。版本3.17.1
@Override
protected void onResume() {
Log.d(TAG, "onResume()");
paused = false;
super.onResume();
if(gainAudioFocus)
Cocos2dxAudioFocusManager.registerAudioFocusListener(this);
this.hideVirtualButton();
resumeIfHasFocus();
Cocos2dxEngineDataManager.resume();
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
Log.d(TAG, "onWindowFocusChanged() hasFocus=" + hasFocus);
super.onWindowFocusChanged(hasFocus);
this.hasFocus = hasFocus;
resumeIfHasFocus();
}
private void resumeIfHasFocus() {
//It is possible for the app to receive the onWindowsFocusChanged(true) event
//even though it is locked or asleep
boolean readyToPlay = !isDeviceLocked() && !isDeviceAsleep();
if(hasFocus && readyToPlay) {
this.hideVirtualButton();
Cocos2dxHelper.onResume();
mGLSurfaceView.onResume();
}
}
看起来这里的问题,mGLSurfaceView.onResume()需要onWindowFocusChanged调用,并且this.hasFocus = true,这个问题也会导致home键后,回到游戏,会有闪黑屏现象,因为onWindowFocusChanged和onResume调用是有时间延迟的。