我使用的是標準的ProgressDialog
實現:我設置了一個線程來運行一個長時間的任務,當它完成時它將關閉ProgressDialog。ProgressDialog.dismiss()和AlertDialog.show()之間的長延遲
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
context = this;
progress = ProgressDialog.show(this, "Running", "Please wait..", true, false);
progress.setOnDismissListener(new OnDismissListener() {
public void onDismiss(DialogInterface dialog) {
showResults();
}
});
new DeleteThread().start();
}
和線程看起來是這樣的:
private class DeleteThread extends Thread {
public DeleteThread() {}
@Override
public void run() {
// long process during which we populate
// a LinearLayout with many other Views
progress.dismiss();
}
}
而且在showResults()
我們採取的LinearLayout現在充滿了意見,並將其設置爲AlertDialog的內容。
問題是,ProgressDialog消失了,並且還有很長一段時間(10-12秒),AlertDialog彈出之前什麼也沒有發生。有沒有辦法讓這個過渡瞬間?
沒有運氣。我試過'無效()'和'postInvalidate()'以及'forceLayout()' – Snailer