2013-07-06 2 views
-1

У меня есть тяжелая задача, которая будет выполняться при нажатии кнопки. Пользовательский интерфейс заблокирован, когда кнопка нажата, когда задача выполнена.Показывать индикатор выполнения при выполнении задачи

Я хочу показать прогрессную панель с прогрессом задачи.

Как я могу это сделать?

Благодаря

EDIT: Я установил это с помощью AsyncTask с progressdialog

+0

использование асинхронного задача – Senthil

ответ

0

Использование AsyncTask

Пример:

private class LongOperation extends AsyncTask<Void, Void, String> { 

     @Override 
     protected String doInBackground(String... params) { 

      // Put Your Code Here Which is to be executed on button Click 
      return "Executed"; 
     }  

     @Override 
     protected void onPostExecute(String result) { 
      // Dismiss Progress Dialog here 
     } 

     @Override 
     protected void onPreExecute() { 
     // Show Progress Dialog Here 

     } 

} 

А на кнопке Нажмите Выполнить:

 new LongOperation.execute(); 
0

Для того, чтобы пользовательский интерфейс, чтобы не заблокирован, вы можете использовать отдельный поток для запуска «тяжелой задачей» в нем. Лучший способ - посмотреть в AsyncTask. Посмотрите на документацию и когда вы получите «4 шага» раздела, на первом этапе вы будете читать:

onPreExecute() вызывается в потоке пользовательского интерфейса, прежде чем задача будет выполнена. Этот шаг обычно используется для настройки задачи, например, показывая индикатор выполнения в пользовательском интерфейсе.

Here's a tutorial как это сделать. Имейте в виду, что AsyncTask - не единственное решение, есть другие инструменты для обработки «тяжелых задач» в фоновом режиме - см. Этот excellent article по этому вопросу (также с образцами кода).