Я запускаю поток в своей деятельности и сразу же отображаю диалоговое окно прогресса. Метод в этой теме после завершения своей задачи вызывает другой поток, который вызывает метод m_progressDialog.dismiss();
.
Это работает нормально, но я хочу реализоватьИндикатор выполнения теперь показывает, как этот индикатор заполняется в соответствии с завершением задачи в предыдущем потоке. Это занимает неопределенное количество времени для завершения его операций.
это может показаться неоднозначным, но я готов доработать его, если потребуется.
Небольшой фрагмент кода:
Метод в первом потоке заканчивается следующим образом
...
runOnUiThread(m_returnRes);
}
private Runnable m_returnRes = new Runnable() {
public void run() {
m_progressDialog.dismiss();
Также я пытался сделать это таким образом
m_progressDialog = new ProgressDialog(this);
m_progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
m_progressDialog.setProgress(0);
m_progressDialog.setMax(100);
m_progressDialog.setMessage("Retrieving data..");
m_progressDialog.show();
Thread background = new Thread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
try {while(m_progressDialog.getProgress()<=100){
Thread.sleep(500);}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
background.start();
но панель не заполняется и закрывается сразу после вызова метода .dismiss ()