Один погрузчик для всех видов деятельности - PullRequest
2 голосов
/ 27 сентября 2011

Я создаю приложение для Android. Он анализирует канал, который хранится в БД. Каждое действие приложения может получить эти данные из БД.

Каждый вид деятельности может также вызывать Сервис и заставлять его обновлять данные. Когда это будет сделано, я хотел бы отобразить загрузчик. Пока служба загружается, пользователь все еще может свободно перемещаться между действиями. Мой вопрос Как я могу отобразить загрузчик, который работает во всех действиях, к которым пользователь переходит?

Большое спасибо:)

Ответы [ 2 ]

0 голосов
/ 27 сентября 2011

Вы можете попробовать что-то вроде:

  • Поместить «глобальный вид загрузчика» во все ваши действия.
  • Когда вы начинаете / возвращаетесь к действию, запускайте AsyncTask, который будетиспользоваться для обработки обновлений глобального загрузчика
  • Override onPreExecute() для подготовки глобального загрузчика (например, установка его состояния на текущий уровень, если служба некоторое время загружалась)
  • OverrideonProgressUpdate() и использовать его для обновления состояния глобального загрузчика, запрашивая у службы текущее состояние (процент загрузки или что-то в этом роде)
  • В doInBackground вы реализуете:

    while( service.isLoading() ) {
      publishProgress( service.getLoadPercentage() )
      // Maybe add a Thread.sleep() here.
    }
    
  • Переопределить onPostExecute, чтобы установить видимость глобального загрузчика на View.GONE.

Возможно, вам потребуется реализовать способ уничтожения AsyncTask, если пользователь отключается отактивность, когда загрузка еще не завершена.

0 голосов
/ 27 сентября 2011

Вот что я хотел бы сделать, так как это кажется мне необычной задачей:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...