【问题标题】:issue in application did enter background应用程序中的问题确实进入了后台
【发布时间】:2014-05-28 14:05:17
【问题描述】:

我在 cocos2d-x 中有一个应用程序。我希望我的应用程序应该一直运行,直到手动停止。但是在进入后台时它会暂停,返回时它会恢复。我删除了代码

CCDirector::sharedDirector()->pause();
CCDirector::sharedDirector()->resume();

来自 Appdelegate.cpp 函数(applicationDidEnterBackground() 和 applicationDidEnterForeground())。但是我的应用程序在进入后台时仍然暂停。我希望我的应用程序只在我接到电话或手动暂停我的应用程序时才暂停,直到或除非它应该在后台运行。请我解决这个问题。

【问题讨论】:

    标签: c++ xcode cocos2d-x


    【解决方案1】:

    当您的应用进入后台时会发生以下情况

    类名 >>> Cocos2dxActivity.java

        @Override
        protected void onPause() {
        super.onPause();
    
        Cocos2dxHelper.onPause();
        this.mGLSurfaceView.onPause();
    }
    

    我认为代码是不言自明的,即它在进入后台时暂停您的应用程序(onPause 的全部目的),您提到的 ApplicationDelegate 方法只是活动进入后台/前台时调用的 JNI 函数,以便你可以在那里做与游戏相关的事情。您可能知道,CCDirector 的暂停只是暂停正在运行的场景(计划计时器)并将绘制速率更改为 4 FPS 以减少 CPU 消耗。

    因此,在 Appdelegate 中删除对 CCDirector 的暂停/恢复调用将无助于实现这些目标。为此,您必须覆盖我上面提到的方法和相关方法,并停止活动暂停。

    【讨论】:

    • 但我正在使用 c++ 为 IOS 做这件事,然后我可以在哪里进行更改
    • 检查您的 AppController.mm 文件,从那里调用 AppDelegate.cpp 文件。
    • 我试过了,但它不起作用。现在我希望我的应用程序应该在设备锁定时运行。我试过了,但我做不到,你能建议我在哪里可以得到解决方案。
    • 您希望通过这种方式实现什么目标?可能有替代品!
    • 我的应用程序是基于音频的,在一定时间内它应该会继续发出声音。但是当我锁定设备时,应用程序暂停,解锁时它从上次会话恢复。但我希望我的应用程序在设备锁定时发出声音。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多