[英]ProgressDialog keeps on showing despite being cancelled and hidden
現在,我正在為預計需要幾秒鍾的事件模擬 ProgressDialog 的顯示。
我是這樣做的:
progressDialog = new ProgressDialog(getContext());
progressDialog.setMessage(getString(R.string.calendar_load));
progressDialog.setCancelable(false);
progressDialog.show();
Thread t=new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
getActivity().runOnUiThread(new Runnable()
{
@Override
public void run() {
progressDialog.cancel();
progressDialog.hide();
但是,即使我已經在調試中檢查了 progressDialog.cancel() 和 progressDialog.hide() 執行對話框,它仍然明顯地以不確定的方式繼續顯示。
什么可能導致這種行為?
問題已解決:感謝所有回答/評論的人,它看起來像一個模擬器錯誤(實際上它也曾在模擬器上工作過一段時間)。
調用progressDialog.dismiss();
你能試試這個片段嗎?
progressDialog.show();
new Thread(new Runnable() {
@Override
public void run() {
try {
while (progressDialog.getProgress() <= progressDialog.getMax()) {
Thread.sleep(100);
handle.sendMessage(handle.obtainMessage());
if (progressDialog.getProgress() == progressDialog.getMax()) {
progressDialog.dismiss();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
Handler handle = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
progressDialog.incrementProgressBy(1);
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.