2014-09-30 5 views
2

Я пытаюсь реализовать ProgressBar внутри ListFragment элементов, мое приложение работает как это,Прогресс бар ListView tiem Android

  1. App уведомляется через GCM для загрузки 2 файлов
  2. приложение начнет поток для загрузки файлов
  3. Этот поток будет обновлять БД, добавив новое поле с именем файла и загруженным файлом URL-адрес , и у меня есть поле в БД, которое показывает, если файл загружен успешно или не.
  4. Нить будет обновление глобальной переменной с прогрессом каждого файла с тем же имя сохраненной в БД
  5. при завершении загрузки, поток будет обновить строку с «Загрузка завершена» и уведомляет об этом dataset, который перезагрузит курсор (загрузчик курсора)
  6. В фрагменте списка будет показан этот пункт как скачанный.

Теперь на ListFragment стороны, приложение может быть запущенно что делает ListFragment видно, в этом случае, как я могу получить прогресс пункта загрузки? Должен ли я опросить BindView? что-то вроде ниже, что действительно не подходит.

while(true) 
{ 
    updateProgressBar(globalVar.DownloadProgress); 
} 

Или я должен уведомить пункт о прогрессе? что я не уверен, как это сделать, и я не хочу перезагружать курсор.

Пожалуйста, дайте мне знать, если я недостаточно ясен.

+0

ok Ваш процесс загрузки - это еще один контекст, чем ваш списокПросмотр? так что у вас нет доступа к обратному сообщению от вашего клиента-клиента? –

+0

поток загрузки - поток обработчика. –

+0

Знаете ли вы заранее размер файла? вы сохраняете эту информацию в базе данных? – njzk2

ответ

0

Поскольку для загрузки требуется подключение к Интернету, вы не можете сделать это в основной теме. Если вы используете AsyncTask для многопоточности, вам просто нужно переопределить onProgressUpdate(). Если вы не используете AsyncTask, я предлагаю вам изменить свой код, чтобы сделать это.

+1

Я не загружаю файл в основной поток, пожалуйста, проверьте 2 –

Смежные вопросы