我的问题是:当我调试类似于如下的代码时:等待UI作业结束(Android)
someSpinner.setSelection(0); someEditText.setEnabled(true);
然后我看到第一个动作实际上是在第二个动作之后执行的。我的猜测是,微调控制动作被放入某种不立即启动的异步作业中。我的目标是等到第一个动作完成后再运行第二个动作。 任何人都知道如何实现这一点?
在Eclipse RCP我解决这个类似以下内容:
uiJob1.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
if (event.getResult().isOK()) {
uiJob2.schedule();
} else {
...
}
}
});
// 2
uiJob2.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
if (event.getResult().isOK()) {
...
} else {
...
}
}
});
uiJob1.schedule();
您正在考虑错误的方式。但不能说正确的方法是因为你没有说**为什么**和**你想要做什么**。以某种方式等待UI更新完成,但绝对是多线程,asycnh OOP环境中的一个有缺陷的设计。 – Simon 2014-11-06 21:11:31