我的問題是:當我調試類似於如下的代碼時:等待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