Vui lòng kiểm tra mã mẫu sau. Tin nhắn bánh mì nướng được hiển thị nhưng progressdialog không bao giờ bị ẩn. Tại sao?ProgressDialog.dismiss() không hoạt động
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.Toast;
public class LoadExamActivity extends Activity implements Runnable{
ProgressDialog pd;
Handler Finished = new Handler(){
@Override
public void handleMessage(Message msg){
Toast.makeText(getApplicationContext(), "DONE!", Toast.LENGTH_SHORT).show();
pd.dismiss();
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.exam);
Toast.makeText(this, "START!", Toast.LENGTH_SHORT).show();
pd = new ProgressDialog(this);
pd.show(this, "Waiting...", "Please wait five seconds...");
Thread th = new Thread(this);
th.start();
}
public void run() {
//To change body of implemented methods use File | Settings | File Templates.
for (int i = 0; i < 5; i++)
{
try
{
Thread.sleep(1000);
}catch(Exception e){}
}
Finished.sendEmptyMessage(0);
}
}
Sau năm giây "DONE" tin nhắn được hiển thị nhưng progressdialog không bị sa thải và thậm chí nếu tôi đặt pd.dismiss() ngay phía dưới Thr pd.show() Tôi sẽ không bỏ qua những progressdialog hai và tôi don 't biết tại sao điều này đang xảy ra và nó làm tôi phát điên!
Nó ĐÃ LÀM VIỆC! Bạn đã đúng về Cảnh báo và tôi đã không nhận thấy nó. Nhưng tôi không thể hiểu tại sao IDE cho tôi biết rằng phương thức .show() không trả về bất kỳ thứ gì (void) và sau khi nó trả về một cá thể của một ProgressDialog? – Davidoff
Có, tính năng này hoạt động. show() trả về một cá thể của ProgressDialog nhưng sử dụng từ khóa mới, chúng ta cũng có cùng một cá thể, tôi hy vọng. Bằng cách sử dụng ở trên, mã bỏ qua hoạt động, mặt khác, bằng cách sử dụng từ khóa mới, mã không hoạt động. – Khushboo
Cảm ơn bạn đã giải thích tuyệt vời. – suku