Libgdx,如何在已实施的界面中访问回调'

时间:2015-10-19 19:54:57

标签: android interface callback libgdx

我需要用WS(websockets)实现一个LibGDX项目。 androidAsync似乎是一个很好的。

然而,我仍然坚持我所想的两种解决方案。

一:我是否使用核心模块(Common for Desktop,Android,IOS等)。在那里调用所有AA功能。但它没有编译。它似乎需要Android.net.uri或核心模块无法使用的内容。

二:我是否只做Android特定。根据LibGDX,我通过Interface做到了。现在我实现了接口,但猜猜什么会有回调内部接口,我无法使用。阻塞的未来可以与return语句一起使用,但我似乎无法找到WS的阻塞调用,因为在设计中它依赖于事件回调。 Android模块中实现的代码用于相应的核心模块接口。

@Override
public String getStringNonAsync(String url)
        throws ExecutionException, InterruptedException {
    Future<String> stringFuture = AsyncHttpClient.getDefaultInstance().executeString(
        new AsyncHttpGet(url), new AsyncHttpClient.StringCallback() {
            @Override
            public void onCompleted(Exception e, AsyncHttpResponse source, String result) {

            }
        }
    );
    Log.d("Android", "Interfce called");
    return stringFuture.get();
}

如何从完成的回调中获取结果字符串,而不是阻止调用get()。

在核心模块中调用此代码。 asyncInterface是在所有其他模块中实现的接口。我无法检索回调,只返回语句(据我所知)。

new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Tap = game.asyncInterface.getStringNonAsync(Url);
//todo set the string, onRender().
            } catch (ExecutionException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }).start();

0 个答案:

没有答案