Tôi đang cố gắng hiển thị hộp thoại tiến trình trong phương thức onCreate() của một trong các hoạt động của tôi, hoàn thành công việc để hoàn thành màn hình trong chuỗi và sau đó bỏ qua hộp thoại tiến trình.Android runOnUiThread Giải thích
Đây là onCreateMethod của tôi()
dialog = new ProgressDialog(HeadlineBoard.this);
dialog.setMessage("Populating Headlines.....");
dialog.show();
populateTable();
Phương pháp populateTable chứa chủ đề của tôi và mã số để đóng hộp thoại, nhưng đối với một số lý do. Hoạt động này xuất hiện trống trong khoảng 10 giây (thực hiện công việc populateTable()), và sau đó tôi thấy màn hình. Tôi không bao giờ thấy hộp thoại được hiển thị, bất kỳ ý tưởng nào?
Đây là populateTable() code:
//Adds a row to the table for each headline passed in
private void populateTable() {
new Thread() {
@Override
public void run() {
//If there are stories, add them to the table
for (Parcelable currentHeadline : allHeadlines) {
addHeadlineToTable(currentHeadline);
}
try {
// code runs in a thread
runOnUiThread(new Runnable() {
@Override
public void run() {
dialog.dismiss();
}
});
} catch (final Exception ex) {
Log.i("---","Exception in thread");
}
}
}.start();
}
'Nếu có câu chuyện, hãy thêm chúng vào bảng'. Bạn chạy mã này trên chuỗi giao diện người dùng chứ không phải trên chuỗi bạn đã tạo. –
không chắc chắn những gì bạn đang đề xuất? – user1154644
Di chuyển tất cả các mã trong runOnUiThread ra để void run(), chỉ để lại 'dialog.dismiss();' –