Timer 与html兼容的计时器,不使用';不要在离焦时停顿?

Timer 与html兼容的计时器,不使用';不要在离焦时停顿?,timer,libgdx,Timer,Libgdx,我有一个libgdx项目,我希望将其部署到桌面和web上 我在项目中使用了com.badlogic.gdx.utils.Timer,但发现如果应用程序散焦,它会暂停。因此,我转而选择了java.util.Timer,它会一直滴答作响。 但是,这会在gwt下产生编译错误 因此,我正在寻找一个计时器解决方案上的指针,该解决方案既可以在两者上工作,也可以让应用程序“在后台”计数 观念 我是否以某种方式扩展/修改com.badlogic.gdx.utils.Timer 或者在core中使用java.u

我有一个libgdx项目,我希望将其部署到桌面和web上

我在项目中使用了
com.badlogic.gdx.utils.Timer
,但发现如果应用程序散焦,它会暂停。因此,我转而选择了java.util.Timer,它会一直滴答作响。 但是,这会在gwt下产生编译错误

因此,我正在寻找一个计时器解决方案上的指针,该解决方案既可以在两者上工作,也可以让应用程序“在后台”计数

观念

  • 我是否以某种方式扩展/修改
    com.badlogic.gdx.utils.Timer
  • 或者在core中使用
    java.util.Timer
    ,但不知何故告诉gwt编译器使用不同的类
  • 替代品
谢谢,

您有两个选择:

  • 我建议您使用
    com.badlogic.gdx.utils.Timer
    ,但如果您的应用程序将散焦,则它将暂停,因为您的任务安排在
    timerRead
    上,该任务由LibGDX框架本身通过
    pause()
    resume()
    生命周期方法管理。您需要覆盖
    ApplicationListener
    的暂停方法,并自己启动计时器

    @Override
    public void pause() {
       Timer.instance().start();
    }
    
  • java.util.Timer
    Trow gwt编译器错误,gwt上可能不支持


  • 我找到了一个使用gwt.xml配置文件的解决方案。 使用“super source”标记,您可以指定一个子包,该子包的内容将在其他地方代替java文件使用。 您必须确保子包完整的路径匹配,然后它才能完美工作

    ie,这在我的gwt.xml中,位于com.lostagain.jamgdx

    <!--    This overrides the default timer class in JamGdx-core with a gwt specific implementation -->
    <!-- This is because the core method uses javas Timer out of preferance for its behavour, which gwt does not support. -->
    <!-- The gwt class uses its own timer method instead. -->   
    
        <super-source path="gwtonly"/>
    
    在gwt项目中。
    (因为我的正常计时器位于核心中的
    com.lostagain.jamgdx.implementations

    感谢您的回复。gwt不支持正确的javas计时器。不过,我对使用解决方案1犹豫不决,因为让计时器停止只是为了重新启动它似乎很愚蠢。幸运的是,我找到了另一个解决办法。
    com.lostagain.jamgdx.gwtonly.com.lostagain.jamgdx.implementations