因此,当用户通过按下主屏幕按钮关闭应用程序时,我试图运行一段代码。我猜这时正在调用pause()方法。但是,当我尝试在“暂停”方法中使用println某项并通过按下主屏幕按钮“暂停”该应用程序时,pause()函数似乎从未运行。我究竟做错了什么?

@Override
public void pause() {
    System.out.println("here");
}

最佳答案

根据您的评论,您似乎在不调用super方法的情况下覆盖了Game类中的pause方法:

public void pause(){
    //nothing
}


因此,您已经删除了Game类调用活动Screen类的pause()方法的原始功能。

您应该确保像这样调用super方法,以免删除功能:

public void pause(){
    super.pause();
    //other code you might want to add
}


如果您不需要在此处添加代码,则根本不要在Game类中覆盖pause()

最重要的是,每当您覆盖一个方法时,始终调用该方法的超类的实现,除非您特别想更改其行为而不是仅仅添加它。

关于java - libgdx pause()方法不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31576162/

10-12 01:49