Android Cocos2d安卓锁屏或离开游戏强制重启

Android Cocos2d安卓锁屏或离开游戏强制重启,android,cocos2d-android,Android,Cocos2d Android,我正处于Cocos2d-Android游戏的最后阶段,我遇到了一个无法解决的问题 当我锁定平板电脑(Nexus 7)或按下home(主页)按钮离开游戏时,它会重新启动。它会回到初始屏幕,就像游戏重新开始一样。以下是我的主要活动和Android清单,供您参考: public class MainActivity extends Activity { //To get a static reference to context for shared preferences private stat

我正处于Cocos2d-Android游戏的最后阶段,我遇到了一个无法解决的问题

当我锁定平板电脑(Nexus 7)或按下home(主页)按钮离开游戏时,它会重新启动。它会回到初始屏幕,就像游戏重新开始一样。以下是我的主要活动和Android清单,供您参考:

public class MainActivity extends Activity {

//To get a static reference to context for shared preferences
private static Context context;

protected CCGLSurfaceView _glSurfaceView;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    //To get a static reference to context for shared preferences
    MainActivity.context = getApplicationContext();
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    _glSurfaceView = new CCGLSurfaceView(this);

    setContentView(_glSurfaceView);
}

//To get a static reference to context for shared preferences
public static Context getAppContext(){
    return MainActivity.context;
}

@Override
public void onStart()
{
    super.onStart();

    CCDirector.sharedDirector().attachInView(_glSurfaceView);

    CCDirector.sharedDirector().setDeviceOrientation(CCDirector.kCCDeviceOrientationPortrait);

    CCDirector.sharedDirector().setDisplayFPS(true);

    CCDirector.sharedDirector().setAnimationInterval(1.0f / 60.0f);

    CCScene scene = Splash.scene();

    CCDirector.sharedDirector().runWithScene(scene);
}

@Override
public void onPause()
{
    super.onPause();

    CCDirector.sharedDirector().pause();
    SoundEngine.sharedEngine().pauseSound();
}

@Override
public void onResume()
{
    super.onResume();

    CCDirector.sharedDirector().resume();
    SoundEngine.sharedEngine().resumeSound();
}

@Override
public void onStop()
{
    super.onStop();

    SoundEngine.sharedEngine().pauseSound();

}


android:configChanges=“键盘|键盘隐藏|方向”

非常感谢您的帮助。谢谢。

在onstop()方法中添加这一行


您需要编写一个onDestroy()方法,以便在关闭游戏时删除所有实例。

将清单文件中的下一行添加到活动中

        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"

当您锁定屏幕时,屏幕的方向会发生变化。因此,您的活动会破坏,然后又会创建。如果您在这一行添加广告,则您的方向不会改变

上面的答案没有解决问题,但我终于找到了答案。这是一个艰难的时刻

如果其他人发现此问题:

删除AdnroidManifest.xml中的targetSdkVersion。或者换成其他的,我没有试过其他的,但是删除成功了

android:minSdkVersion="9"
android:targetSdkVersion="17" /> //git rid of this guy

调用CCDirector.sharedDirector().resume();在onStop()中,这不起作用。谢谢你的建议。
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:minSdkVersion="9"
android:targetSdkVersion="17" /> //git rid of this guy