请教一个onHide,onShow的问题

cocos creator自己好像没有onHide,onShow这样的API吧?

小游戏发布到微信平台时,可以很方便的用wx.onHide或wx.onShow来处理,也就是说所有代码都在js里实现了(例如有切到后台时把全局变量的数据保存在本地的需求,那么很轻松地可以在wx.onHide里面用一条语句就实现了)。那么发布到安卓原生平台怎么办呢?难道要在原生那边java的onStop,onRestart之类的事件里面去实现吗?感觉这种方式非常麻烦啊。。。

请问大家一般怎么处理呢?谢谢!

cc.game.on(Game.SHOW, fun);
这个。

1赞

太感谢您了,原来如此啊,学习了,我昨天用onHide,onShow搜了半天都没有找到,又想到cocos creator是针对所有平台的,包括WEB这种有可能无法实现onHide,onShow的,所以怀疑cocos creator本身没有这个API,需要开发者自己适配环境。最后以为只能JAVA里的onStop,onRestart调用JS来实现了。。。。

cc.game.on(cc.game.EVENT_GAME_INITED, () => {
        cc.game.on(cc.game.EVENT_SHOW, () => {
            xxx
        });

        cc.game.on(cc.game.EVENT_HIDE, () => {
            xxx
        });
    })
4赞

感谢回复,EVENT_SHOW和EVENT_HIDE回调必须要写在EVENT_GAME_INITED回调里面吗?我看官方文档的例子并没有写在EVENT_GAME_INITED回调里面啊。。。

cc.game.on(cc.game.EVENT_HIDE, function () {
    cc.audioEngine.pauseMusic();
    cc.audioEngine.pauseAllEffects();
});

这是在游戏初始化后,因为游戏初始化也需要时间嘛,在这个期间如果调用了相关回调,可能会发生一些你意料之外的情况

1赞

好的,明白了,谢谢,那看来还是写在EVENT_GAME_INITED回调里面比较安全

客气,没问题的话,记得标记下哪个楼为解决方案,方便一眼就可以看到答案

嗯嗯,刚才标注了,以前没太注意标注这个事。。。。