diff --git a/quick/template/frameworks/runtime-src/proj.android/libcocos2dx/src/main/java/org/cocos2dx/lib/Cocos2dxActivity.java b/quick/template/frameworks/runtime-src/proj.android/libcocos2dx/src/main/java/org/cocos2dx/lib/Cocos2dxActivity.java old mode 100755 new mode 100644 index dad72f957af4097d2e28b4fe5755d5b7ad81dee3..a3e091bd05f0737d7846883934a2287b9c6b382b --- a/quick/template/frameworks/runtime-src/proj.android/libcocos2dx/src/main/java/org/cocos2dx/lib/Cocos2dxActivity.java +++ b/quick/template/frameworks/runtime-src/proj.android/libcocos2dx/src/main/java/org/cocos2dx/lib/Cocos2dxActivity.java @@ -315,37 +315,38 @@ public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelpe protected void onResume() { Log.d(TAG, "onResume()"); super.onResume(); - this.hideVirtualButton(); - resumeIfHasFocus(); } @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) { + if (this.hasFocus == hasFocus) { + return; + } + + if (hasFocus) { + //It is possible for the app to receive the onWindowsFocusChanged(true) event + //even though it is locked or asleep + boolean readyToPlay = !isDeviceLocked() && !isDeviceAsleep(); + if (!readyToPlay) { + return; + } this.hideVirtualButton(); Cocos2dxHelper.onResume(); mGLSurfaceView.onResume(); + } else { + Cocos2dxHelper.onPause(); + mGLSurfaceView.onPause(); } + this.hasFocus = hasFocus; } @Override protected void onPause() { Log.d(TAG, "onPause()"); super.onPause(); - Cocos2dxHelper.onPause(); - mGLSurfaceView.onPause(); } @Override