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