активность предпочтений Android - PullRequest
1 голос
/ 18 мая 2011

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

Код написан:

 public boolean onPreferenceClick(Preference preference) {
  showProgressDialog();
  new Thread(new Runnable() {
   public void run() {
    doSomething();
    hideProgressDialog();
   }       //Runnable.run()
  }).start();
  return false;
 }
});

Но приведенный выше код не отображает диалог прогресса.и возникает ошибка ANR.

Спасибо.

Ответы [ 2 ]

1 голос
/ 18 мая 2011

Я еще не реализовал диалоговое окно прогресса (планируем позже сегодня), но этот пример выглядит как хороший.Я планирую использовать это сам.Я отмечаю, что это делает ряд вещей, которых не делает ваш код.

1 голос
/ 18 мая 2011

Добавьте следующий код в свой класс деятельности:

// Need handler for callbacks to UI Threads
    // For background operations
    final Handler mHandler = new Handler();

    // Create Runnable for posting results
    final Runnable mUpdateDone = new Runnable() {
        public void run() {
            progDialog.hide();      
            // Do your task here what you want after the background task is finished.           
        }
    };

Введите следующий код в onPreferenceClick:

progDialog = ProgressDialog.show(AddPhoto.this, "", "Uploading Photo...");
            new Thread() {
                public void run() {
                    // Start your task here.....                                                        
                    mHandler.post(mUpdateDone);
                }
                }.start();

Дайте мне знать, если у вас не работает!

...