Я довольно новичок в разработке Android и многому улавливаю. У меня есть концептуальный вопрос. То, что кажется довольно прямым в IOS, я не могу понять в Android.отправка нескольких изображений в службу с обратной связью на экране телефона
Вот что я пытаюсь выполнить:
мне нужно перебирать фотографии устройства и отправить их по одному за раз в какой-то веб-службы.
- Во время загрузки изображения мне нужно показать текущую фотографию на экране вместе с индикатором текущей загрузки.
- Мне также нужно показать общее количество фотографий, оставленных для загрузки.
- Наряду с этим мне нужно иметь 2 кнопки на экране - «Отменить текущую загрузку» и «Приостановить все» (надеюсь, что очень понятно, что эти кнопки должны делать).
Проблема заключается в том, что в то время как итерация через MediaStore, кажется, блокирует текущий поток и, если я делаю это в основном потоке пользовательского интерфейса, то, очевидно, изображения будут загрузки, но я бы не видел все на экране, пока все загрузки не будут выполнены. Чтобы преодолеть это, я пытаюсь запустить новую AsyncTask и повторить этот путь. Для загрузок я использую библиотеку loopj, которая может загружаться только асинхронно, когда загрузка начинается с основного потока пользовательского интерфейса. Поскольку загрузка начинается с потока, в котором работает AsychTask, я вынужден использовать синхронный клиент, который не возвращает ответный дескриптор до завершения загрузки, а это значит, что я никогда не смогу отменить текущую загрузку. Чтобы преодолеть это, я пытаюсь создать новое намерение для каждой загрузки изображения из итератора AsynchTask и дождаться его возвращения, пока не перейду к следующему циклу interator, который имеет ужасный внешний вид. Экран Intents всплывает и складывается с анимацией, которая слишком раздражает и выглядит ужасно. Aghhh - решение, которое я описываю, настолько сложное. Я уверен, я пропустил что-то немое просто. Любые идеи были бы высоко оценены!
P.S. Этот код можно найти здесь: https://github.com/echowaves/Echowaves.android/blob/master/app/src/main/java/com/echowaves/android/UploadProgressActivity.java https://github.com/echowaves/Echowaves.android/blob/master/app/src/main/java/com/echowaves/android/UploadProgressDetailsActivity.java