如果启动应用程序时手机被锁定,则cocos2d会导致应用程序放弃所有触摸和音量控制事件

时间:2018-06-27 17:02:36

标签: android cocos2d-x cocos2d-android

我扩展了Cocos2dxActivity,在onCreate中,我显示了一个DialogFragment,其中包含一些GDPR内容。我的自定义DialogFragment覆盖的唯一生命周期事件是onSaveInstanceState()和onCreateDialog()。我的对话框启动时确实有一个button.requestFocus。

如果在应用启动时手机屏幕被锁定,则所有触摸事件都将被取消。

W/ViewRootImpl[GDPR Dialog Title]: Dropping event due to no window focus: MotionEvent { action=ACTION_DOWN, ...
W/ViewRootImpl[GDPR Dialog Title]: Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, ...

以及

 Cancelling event due to no window focus: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_VOLUME_DOWN, ...

如果不显示对话框,则无法重现该错误。
如果该应用没有cocos,我将无法重现该错误。
应用启动后锁定手机不会重现该错误。

将显示对话框的代码移动到onStart()或onResume()不会改变任何内容。

我尝试注释掉Cocos2dxActivity的onResume()和onPause()的不同部分,即使Cocos没有重点,也强制执行恢复代码,但这也没有改变。

这是一个精简的logcat,其中仅包含与该问题相关的内容

[应用启动]

D/Cocos2dxActivity: onResume()
D/AudioFocusManager: requestAudioFocus succeed

[应用程序启动时手机已锁定]

D/Cocos2dxActivity: onPause()
D/AudioFocusManager: abandonAudioFocus succeed!

[电话已解锁]

D/Cocos2dxActivity: onWindowFocusChanged() hasFocus=true
D/Cocos2dxActivity: onResume()
D/AudioFocusManager: requestAudioFocus succeed
D/Cocos2dxActivity: onWindowFocusChanged() hasFocus=false
W/ViewRootImpl[GDPR Dialog Title]: Dropping event due to no window focus: MotionEvent { action=ACTION_DOWN, ...

0 个答案:

没有答案