Добавление нового приложения BackgroundTransferRequest, когда оно находится в фоновом режиме

Добавление BackgroundTransferRequest в BackgroundTransferService после того, как приложение находится в фоновом режиме, выполняется успешно, но новые запросы фактически не выполняются, пока приложение не вернется на передний план. Не очень хорошо для моего сценария загрузки большого количества небольших файлов, для завершения которых может потребоваться довольно много времени.

Я предполагаю, что Microsoft, вероятно, реализовала это поведение по дизайну (?), Но кто-нибудь знает способ обойти это или альтернативный подход?

Небольшая предыстория проблемы:

Я разрабатываю картографическое приложение для Windows Phone 8, которое позволяет загружать и кэшировать разделы карт для автономного использования. Этот процесс может привести к необходимости загрузки 1000 фрагментов карты.

Я создал процесс, который порождает полный ограничение в 25 запросов BackgroundTransferRequest, а затем добавляет больше в BackgroundTransferService по мере выполнения запросов. Все это работает нормально, пока приложение не перейдет в фоновый режим.

Я подумал о том, чтобы выполнить некоторую обработку на стороне веб-сервера, чтобы фрагменты могли быть объединены в zip и загружены как один запрос, но это дополнительное усложнение и приведет к тому, что на телефоне потребуется вдвое больше места для завершения загрузки, а затем извлечения файлы перед удалением исходного пакета. Но в идеале я хотел бы найти способ заставить новые BackgroundTransferRequest запускаться в фоновом режиме.


person Gavin    schedule 18.07.2013    source источник


Ответы (1)


Непонятно, в чем заключается ваш фактический вопрос, но я определенно рекомендую объединить их в zip-файл, а затем загрузить его. Почти всегда легче работать с одним файлом, чем с тысячами.

Если место на диске действительно является серьезной проблемой (а не только теоретической - я уже размещал тысячи фрагментов карт размером менее 20 МБ, но это будет зависеть от сложности и качества изображения), то вы можете сделать несколько zip-файлов. тогда вы избежите проблемы с BTR и не займете столько места на диске (даже временно).

person Matt Lacey    schedule 18.07.2013
comment
Спасибо, Мэтт. В идеале я хотел бы найти способ обойти проблему BackgroundTransferRequest, который позволил бы мне запускать новые запросы в фоновом режиме. Что касается фрагментов карты, то небольшие файлы легче извлекать, так как предотвращается дополнительная нагрузка на сервер при загрузке и объединении тысяч файлов (и дополнительные усилия). В зависимости от размера выбранной карты пользователь может запросить несколько ГБ тайлов. - person Gavin; 19.07.2013