Библиотека расширения: как реализовать IDownloaderClient и обновить пользовательский интерфейс?
Я следовал руководству по реализации файлов расширения APK, и я столкнулся с проблемой snafu с библиотекой загрузчика ( пример реализации, которой я следовал). В интерфейсе IDownloaderClient определен следующий метод:
onDownloadProgress (Прогресс DownloadProgressInfo)
Служба загрузки вызывает это для доставки объекта DownloadProgressInfo, который описывает различную информацию о ходе загрузки, в том числе о предполагаемом оставшемся времени, текущей скорости, общем прогрессе и общем количестве, чтобы вы могли обновить пользовательский интерфейс прогресса загрузки.
Это реализовано как:
@Override
public void onDownloadProgress(DownloadProgressInfo progress) {
mAverageSpeed.setText(getString(R.string.kilobytes_per_second,
Helpers.getSpeedString(progress.mCurrentSpeed)));
mTimeRemaining.setText(getString(R.string.time_remaining,
Helpers.getTimeRemaining(progress.mTimeRemaining)));
progress.mOverallTotal = progress.mOverallTotal;
mPB.setMax((int) (progress.mOverallTotal >> 8));
mPB.setProgress((int) (progress.mOverallProgress >> 8));
mProgressPercent.setText(Long.toString(progress.mOverallProgress
* 100 /
progress.mOverallTotal) + "%");
mProgressFraction.setText(Helpers.getDownloadProgressString
(progress.mOverallProgress,
progress.mOverallTotal));
}
Проблема в том, что независимо от того, что я делаю, я просто не могу обновить пользовательский интерфейс загрузчика. Я пытался сделать недействительным, postInvalidating, запустить в отдельном потоке и т. Д. Если я пропустил какую-то ключевую часть примера реализации, пожалуйста, укажите мне, но я не могу его найти. Я весь день поливал свой код и пример... Есть идеи, почему я не могу обновить интерфейс? Это буквально последнее, что удерживает меня от публикации моего приложения. Благодарю.
1 ответ
Ну, это расстраивает, но технически у меня есть обновление пользовательского интерфейса. Проблема в том, что я понятия не имею, что сейчас отличается от того, что было раньше.
Я удалил весь макет и создал новый с нуля. Возможно, я что-то изменил в коде, но столько вещей, сколько я пытался случайным образом, трудно сказать, что в итоге дало результат. Если у кого-то еще есть подобная проблема, я бы предложил удалить макет и начать сначала... Я думаю.
Любые дальнейшие отзывы, предложения или информация тоже были бы хорошими.