LibGDX 中的 AsyncTask - 示例

AsyncTask in LibGDX - example

有人在 LibGDX 中将 AsyncTask 与 AsyncResult 和 AsyncExecutor 一起使用过吗? 我想 运行 进行一些音频录制和异步处理,同时检查结果是否准备就绪。 这是我的代码的一部分:

private FftAnalysis analysis;
private AsyncExecutor executor;
private AsyncResult<Double> asyncResult;
(...)
public GameWorld(int midPointY) {
  executor = new AsyncExecutor(300); // I know how big this value is.
  analysis = new FftAnalysis();
  asyncResult = executor.submit(analysis);
}
public void update(float delta){
if(asyncResult.isDone()){ 
   freq = asyncResult.get();
   asyncResult = executor.submit(analysis);
}

isDone() 永远不会为真,我也没有看到 FftAnalysis 的函数 call() 被执行过...

我做错了什么?

为什么不直接使用 libgdx api 来做到这一点?在此处查看计时器 class 和任务 class:http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/utils/Timer.html

基本上,您可以 运行 在单独的线程中编写代码,并在完成后获得结果。