Android: показывает диалог прогресса - PullRequest
8 голосов
/ 10 июня 2010

Я посмотрел на Android API и другие сообщения здесь на stackoverflow, но не смог понять это.

Мое приложение загружает файлы на SD-карту.Я хотел бы открыть диалоговое окно «загрузка ...» во время загрузки файла, а затем удалить его после завершения загрузки.Это то, что я придумал, используя Android API:

ProgressDialog pd = ProgressDialog.show(this,"","Loading. Please wait...",true);

//download file

pd.cancel();

, однако диалоговое окно на самом деле не отображается.когда я отлаживаю его, он утверждает, что он показывает, но его явно нет на экране.

что я могу сделать?

Ответы [ 2 ]

3 голосов
/ 11 июня 2010

Вы должны запустить код загрузки в отдельном потоке. Самый простой способ - использовать AsyncTask

Смотрите также эту статью о том, как ее использовать

2 голосов
/ 11 июня 2010

У меня есть несколько похожий сценарий, больше паузы при загрузке уровней, пока что-то настраивается для фазы игры. Я запускаю диалог, запускаю загрузку уровня в потоке, которому передан контекст, и вызываю это в конце потока:

mContext.runOnUiThread(new Runnable(){
    public void run() {
        mContext.mProgressDialog.dismiss();
    }
});

Я считаю метод runOnUiThread () чрезвычайно полезным.

...