Как переключиться с приложения переднего плана на фоновый агент?

Я хотел бы знать, можно ли переключиться с приложения переднего плана на фоновый агент и наоборот поделиться некоторыми данными из этих двух задач?

Более подробно я хотел бы выполнить загрузку, которая начинается с переднего плана (рис. A), и когда пользователь нажимает кнопку «Назад», загрузка продолжается с фоновым агентом (рис. B).

Изображение находится здесь: http://imageshack.us/f/823/testter.jpg/


person LXG    schedule 19.11.2011    source источник


Ответы (2)


Фоновая передача файлов — это то, что вам нужно . Он может загружать (и скачивать) файлы, когда приложение не запущено:

В ОС Windows Phone 7.1 приложения могут ставить в очередь одну или несколько загрузок файлов или загрузок через HTTP, которые будут выполняться в фоновом режиме, даже если приложение больше не работает на переднем плане. API-интерфейсы, используемые для инициации передачи файлов, следует использовать для запроса состояния существующих передач и предоставления индикаторов хода выполнения для конечного пользователя.

person Heinrich Ulbricht    schedule 20.11.2011
comment
Я немного запутался... Я хотел бы загрузить изображение в твиттер из фонового агента, так что это невозможно? Благодарность - person LXG; 23.11.2011

Вы понимаете, что вы не можете постоянно обновлять плитку из PeriodicTask, верно? Минимальное время обновления составляет 30 минут, если только вы не отправляете push-уведомления (которых я здесь предполагаю, что вы этого не сделаете, поскольку это операция на стороне клиента).

Да и сама плитка не имеет особого смысла. И я не думаю, что использование задачи, которая может выполняться максимум 25 секунд, имеет огромный смысл для загрузки файла.

Так что я думаю, мы можем сделать вывод, что это невозможно сделать. Вместо этого вы должны разрешить приложению работать в фоновом режиме, установив для параметра ApplicationIdleDetectionMode значение Disabled.

PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetecetionMode.Diabled"

Затем пользователь может нажать кнопку «Домой», и загрузка продолжится в фоновом режиме.

person Claus Jørgensen    schedule 19.11.2011
comment
Фоновая задача может информировать серверную сторону, которая отправит push-уведомление =) - person Maxim V. Pavlov; 20.11.2011
comment
Есть много сумасшедших способов сделать это, если вы действительно этого хотите. Я бы не рекомендовал ни один из них :p - person Claus Jørgensen; 20.11.2011
comment
да, я читал фоновую передачу файлов, но это явно противоречит правилам PeriodTask ... проблема в том, что фоновая передача не очень хорошо объяснена, и примеров мало :) - person LXG; 23.11.2011