Java libGDX:当我调用服务器主机时冻结我的游戏

Java libGDX:当我调用服务器主机时冻结我的游戏,java,libgdx,apache-commons-net,Java,Libgdx,Apache Commons Net,我想像其他游戏一样创建每日奖金,所以我从Apache调用commons-net-3.6库从互联网获取当前时间。然后我写了这段代码: NTPUDPClient timeClient = new NTPUDPClient(); String TIME_SERVER = "time-a.nist.gov"; InetAddress inetAddress = InetAddress.getByName(TIME_SERVER); TimeInfo timeInfo = timeClient.getTi

我想像其他游戏一样创建每日奖金,所以我从
Apache
调用
commons-net-3.6
库从互联网获取当前时间。然后我写了这段代码:

NTPUDPClient timeClient = new NTPUDPClient();
String TIME_SERVER = "time-a.nist.gov";
InetAddress inetAddress = InetAddress.getByName(TIME_SERVER);
TimeInfo timeInfo = timeClient.getTime(inetAddress);
long returnTime = timeInfo.getMessage().getTransmitTimeStamp().getTime();
Date time = new Date(returnTime);
System.out.println(time);
但是,有时工作正常,有时不工作,冻结我的游戏(没有响应),为什么


对不起,我的英语不好。

您是在另一个线程上调用此代码的吗

这不能在libgdx呈现线程上执行,该线程必须在一秒钟内至少调用60次。向服务器发出请求非常耗时,在完成之前会阻塞线程。如果请求不是异步的,则必须在单独的线程上运行

最简单的方法(但不是最好的)就是这样做

new Thread() {
    public void run(){
       //Here you need to do the request
    }
}.start();
你可以在这里找到更多信息