暂停loadInBackgroud()方法

时间:2013-04-24 12:34:12

标签: android multithreading android-asynctask handler

我使用 AsyncTaskLoader 。在 loadInBackgroud()方法中,我使用本机库中的一些方法(让我们称之为 any_method())返回布尔值。 我想any_method()使用它自己的线程,所以它可以在一段时间后返回一个重要的值(第一次方法返回false,一段时间后它将是真的)。 我想暂停loadInBackground线程,而any_method()不返回true。

现在我这样做:

public Uri loadInBackground() {
        ...
        final LNI noiseInfo = mEngine.any_method(); // native method
        final Handler handler = new Handler();
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                if (noiseInfo == null) {
                    handler.post(this);
                }
            }
        };
        runnable.run();
        ...
        return value;
}

并收到此错误:

  

java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序

0 个答案:

没有答案