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