0

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

现在我这样做:

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() 的线程内创建处理程序

4

0 回答 0