фоновая передача данных что это такое

Что такое фоновый режим в Android

Иногда система безопасности ОС «Андроид» уведомляет пользователя о том, что в фоновом режиме передается слишком много данных. Но что такое фоновый режим и передача данных в нем? На эти вопросы и постарается ответить статья.

Что такое фоновый режим и передача данных в фоновом режиме

Фоновый режим это режим, при котором приложения продолжают работать после закрытия. К ним относятся: мессенджеры (What’s App, Telegram, Viber), сервисы Google, клавиатура, календарь, виджеты и приложения для приема звонков и СМС.

В этом режиме они потребляют мало вычислительных ресурсов. Если их выключить, то перестанут приходить уведомления от них, увеличится время автономной работы и прекратится расход трафика.

Передача данных в фоновом режиме это процесс обмена информацией с серверами приложения через Интернет при работе приложения в фоне.

В этом режиме оно может незаметно для пользователя потратить весь доступный по тарифу мобильной связи трафик и увести баланс в глубокий минус. Поэтому в ОС Андроид предусмотрена функция ограничения передачи данных в фоновом режиме.

Выключение приложения

Чтобы убрать приложение из фонового режима нужно:

Примечание. Системные приложения с логотипом Android отключить этим образом не получится.

Приложение не будет работать в фоновом режиме до следующего запуска или перезагрузки телефона.

Запрет на передачу данных в фоновом режиме

Эта настройка запрещает приложениям обмениваться данными в фоновом режиме через мобильную связь. Для этого будет использоваться Wi-Fi подключение.

Для Android 7.0 и ниже порядок действий следующий:

Для Android 8.0 и новее:

В обоих случаях в строке уведомлений появится напоминание, что настройка включена.

Подводя итог, можно сказать, что работающие в фоновом режиме приложения это нормально, но иногда они могут тратить слишком много трафика мобильного интернета для обмена информацией с сервером. Устранить эту проблему можно убрав проблемное приложение из оперативной памяти или запретить всем приложениям использование мобильного интернета в фоновом режиме.

Источник

Что такое фоновый режим в андроид?

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Последнее обновление: 26/08/2020

Большинство приложений, сервисов, служб и прочих процессов в ОС Android работают в невидимом для пользователя фоновом режиме. При такой организации достигается высокая функциональность и многозадачность. Из данной статьи вы узнаете, что такое и как работает фоновый режим, преимущества и недостатки, а так же как ограничить фоновую работу.

Что такое фоновый режим и фоновая передача данных

«Фоновый режим» или ещё «работа в фоне» представляет собой процесс, при котором программы, службы, сервисы и прочие задачи выполняются на заднем плане. В сравнении с передним планом, когда пользователь видит окно программы и вносит изменения в реальном времени, задачи на заднем плане выполняются автоматически и без участия пользователя. При этом фоновый процесс регулируется внесенными ранее пользовательскими настройками или установками разработчика.

Благодаря фоновому режиму многие процессы регулируются автоматически, что облегчает управление мобильным устройством и увеличивает многозадачность. После блокировки экрана аппарат не отключается полностью, а продолжает функционировать и выполнять различные задачи. Вот пример наиболее популярных фоновых операций:

Помимо «фоновой работы» в ОС Android имеется «фоновая передача данных». Такая функция определяет режим работы отправки и получения данных в фоне. Если функция активна, то при включенном интернете приложение получает доступ к сети. В случае отключения «фоновой передачи данных», доступ в сеть предоставляется только когда программа находиться на переднем плане.

В качестве примера стоит привести мессенджер или почтовый сервис. Без доступа к фоновой передаче данных утилита не связывается с сервером для проверки писем, когда пользователь сворачивает программу. А стоит открыть приложение, как на устройство поступает десятки писем и сообщений. Поэтому не рекомендуется отключать доступ к сети приложениям, где важно получать информацию в реальном времени.

Как работает фоновый режим

Запущенное приложение работает на переднем плане, пока отображается на экране мобильного устройства или используется пользователем: галерея, браузер, музыкальный проигрыватель и т.д. Если же покинуть приложение при помощи кнопки «возврат на главный экран», программа не закрывается, а сворачивается в фон.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

При наличии активных действий, например воспроизведение музыки, утилита продолжает работать. В ином случае программа ставится на паузу и хранится в кэше оперативной памяти. При достаточном объеме ОЗУ, вызванное вновь приложение из меню «запущенных программ» продолжит работать с последнего места остановки.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Закрытие приложения происходит в случае, если соответствующую функцию выбрал пользователь либо система нуждается в освобождении оперативной памяти для других задач. В таком случае в памяти остаются запущенные службы определенного приложения. Назначение службы определяется функциями приложения. Например, служба JobScheduler используется для планировки задач, а SyncAdapter для синхронизации данных. При необходимости приложение автоматически запускает необходимые службы.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

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

Преимущества фонового режима

Недостатки фонового режима

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

Как ограничить фоновую работу

Ограничение фоновой работы приложений или сервисов – снижает функциональность и многозадачность мобильного устройства. При этом деактивация неиспользуемых утилит позволит увеличить автономность.

Отключение фоновой передачи данных

Ограничение доступа к данным определенных приложений позволит сэкономить мобильный трафик.

Инструкция:

Откройте раздел системных настроек.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Выберите пункт «Передача данных».

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Далее пункт «Экономия трафика».

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Активируйте функцию путем смены переключателя.

Тут же задайте исключения. Указанные приложения получат неограниченный доступ к интернету.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Для разрешения достаточно перевести переключатель.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Некоторые программы требуется предварительно открыть, а после отключить «Фоновый режим».

Отключение синхронизации

При наличии учетной записи Google периодически происходит фоновая передача пользовательских данных на удаленный сервер. Отключение синхронизации лишит возможности сохранения некоторой информации в удаленном хранилище. При этом снизятся затраты энергии, а ещё трафика, при условии что сервисам Google разрешена фоновая передача данных.

Инструкция:

Перейдите в раздел системных настроек.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Далее пункт «Аккаунты».

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Выберите вариант «Google».

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Отключите данные, что не требуется синхронизировать в фоне.

Заморозка приложений

Гибернация приложений позволит принудительно заморозить работу активных программ, что положительно скажется на времени автономной работы.

Инструкция:

Скачайте и установите программу Greenify.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

При первом запуске укажите «рабочий режим». Программа ориентирована на работу с рутироваными устройствами. Без root-прав возможности Greenify меньше. Так же в базовой версии имеются ограничения на доступ к определенным функциям. Для устройств без root-прав достаточно и базовой версии программы.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Предоставьте разрешение для работы Greenify, если версия Android 5.1.1 или выше. Для этого нажмите на кнопку «предоставить разрешение».

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

В новом окне выберите программу Greenify.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Разрешите доступ, а после вернитесь в программу.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Для завершения настройки нажмите «Закончить».

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Что бы «усыпить» приложение нажмите на кнопку со знаком плюс.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Greenify проанализирует программы и покажет утилиты, что работают в фоновом режиме.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Далее следует выбрать активные приложения и подтвердить действие. После блокировки экрана Greenify автоматически заморозит работу «чрезмерно активных фоновых программ».

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Если требуется, нажмите на кнопку «Показать другие приложения», что бы добавить в список заморозки другие программы.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Вывод

В статье мы подробно рассмотрели, что такое фоновый режим в андроид. В фоне выполняются задачи, не требующие внимания пользователя, что облегчает управление, расширяет функциональность и мультизадачность мобильного устройства. При этом недостаточная оптимизация фоновой работы отдельных программ ухудшает автономность. А единственный способ решения проблемы – отключить или заморозить процессы такого приложения.

А как вы поступаете с активными фоновыми процессами приложений? Поделитесь решением в комментариях под статьей.

Источник

Что такое передача данных в фоновом режиме?

Что такое передача данных в фоне?

Фоновый режим на устройствах Android – это передача данных приложениями без участия пользователя или их работа во время режима ожидания смартфона (когда выключен экран).

Что значит работает в фоновом режиме?

Фоновый режим — это, грубо говоря, такой режим, при котором отдельные приложения или процессы работают без участия пользователя. … Однако надо заметить, что далеко не все приложения, которые работают в фоновом режиме, полезны для пользователя.

Как отключить фоновый режим?

Отключение передачи данных для одного приложения

Как отключить работу приложений в фоновом режиме?

Если у вас есть приложение, которое как вы считаете, использует чрезмерное количество мощности процессора или работает в фоновом режиме намного больше, чем нужно, то вы можете: Отключить его через Диспетчер приложений, зайдя в Настройки > Приложения > Диспетчер приложений, выбрав приложение, а затем нажать Отключить.

Что такое фоновая проверка?

Показывает процессы, работающие в фоновом режиме.

Что значит микрофон работает в фоновом режиме?

Если работающее в фоновом режиме приложение задействует камеру или микрофон, Android не только покажет соответствующее уведомление, но и пометит его наглядными значками, сообщающими, какие именно датчики используется. Причём пользователю будет предложено прямо из панели уведомлений прекратить работу указанного ПО.

Как запретить работу в фоновом режиме андроид?

Как запретить работу приложений в фоновом режиме

Как найти в телефоне фоновый режим?

Что такое фоновые приложения на телефоне?

Фоновые приложения – это вид программ, которые запускают определенные процессы без ведома пользователя и работают на фоне, поэтому они и получили такое название. Выглядит, будто приложение закрыто, но оно все равно использует ресурсы системы, сокращает объем оперативной памяти и время работы телефона от аккумулятора.

Как отключить работу приложений в фоновом режиме Xiaomi?

Процесс настройки питания в смартфоне Xiaomi предполагает ограничение работы большинства приложений в фоновом режиме.

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

Как узнать какие программы работают в фоновом режиме?

Как отключить работу приложений в фоновом режиме на айфон?

Как отключить микрофон в фоновом режиме?

Отключить микрофон Android

Чтобы отключить микрофон, просто откройте приложение и нажмите на кнопку. После этого он должен отображать приглушенный звук, означающий, что вы только что отключили микрофон своего устройства. Чтобы включить звук, повторите те же действия.

Что будет если отключить приложение?

Предустановленные приложения нельзя удалить стандартными средствами, но можно отключить их, не забыв удалить обновления. После отключения приложения исчезнут из меню и не будут потреблять системные ресурсы.

Источник

Фоновый режим в телефоне: как ограничить передачу данных?

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такоеФоновый режим на устройствах Android – это передача данных приложениями без участия пользователя или их работа во время режима ожидания смартфона (когда выключен экран).

Без обмена информацией с сервером некоторые приложения работают некорректно. Самым простым примером являются мессенджеры. Постоянное обновление текущей информации позволяет программе получать сообщения, обновления ленты и другие актуальные новости, после чего устройство оповещает о событиях пользователя (через уведомления). Виджеты, демонстрирующие погоду, состояние баланса также используют скрытое интернет-подключение.

Не всем приложениям нужен доступ в сеть по умолчанию для работы. Некоторые программы при соединении с сетью выводят на экран рекламные объявления, которые могут мешать работе и раздражать владельца.

Как включить/отключить фоновый режим передачи данных?

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

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

В пункте “Передача данных” имеется строка “предупреждения и лимит” (если телефон оснащен двумя сим-картами с выходом в интернет, то устанавливать ограничения лучше для каждой).

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Таким образом, при достижении определенной цифры передача данных будет приостановлена.

После включения ограничения правило будет действовать для всех приложений без исключения.

При необходимости отключить фоновый режим передачи данных у конкретного приложения следует действовать следующим образом. В настройках зайти в пункт “приложения и уведомления“. Выбрать необходимую программу.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

В открывшемся окне информации есть пункт передача данных. Здесь можно отключить обмен в фоновом режиме для конкретной программы.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Достаточно тапнуть по бегунку или снять галочку (в зависимости от модели устройства).

Данный способ пригодится, если пользователь устанавливает игры, инструменты и другие программы, которым иметь доступ и синхронизироваться с сервером не обязательно. При этом мессенджеры остаются активными и исправно работают.

Как посмотреть и отключить приложения, работающие в фоновом режиме?

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

Уточнить информацию можно следующим образом: необходимо зайти в Настройки – Батарея.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

В верхнем правом углу имеется кнопка меню, которая позволяет узнать более подробную информацию об использовании энергии. Все ранее запущенные приложения будут отображены в списке ниже графика расхода заряда.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

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

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

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

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Через пункт “дополнительно” найти раздел батарея и включить ограничение работы в фоновом режиме.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

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

Устройства на базе андроид (за редким исключением старых моделей) оснащены функцией многозадачности. Это значит, что пользователь может переключаться между рабочими окнами, не теряя информации, быстро перейти в недавно открытое приложение, разделить экран на два рабочих стола и т.д.

Для закрытия программы недостаточно просто нажать кнопку домой. Необходимо зайти в список недавних приложений и закрыть все активные окна. Это можно сделать, переместив окно с приложением за пределы экрана либо нажав кнопку «закрыть все». Процедура поможет очистить оперативную память и отправить ранее использованные программы в сон.

Диспетчер задач

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

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Принцип действия похож на программу на компьютере, но интерфейс более простой.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

Стартовый экран имеет кнопку “очистить память“, которая останавливает активные приложения. В настройках можно установить автоматическую очистку при блокировке смартфона.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

В процессе установки Диспетчер задач создает виджет, который можно вывести на главный экран и при необходимости производить очистку, не заходя в приложение.

фоновая передача данных что это такое. Смотреть фото фоновая передача данных что это такое. Смотреть картинку фоновая передача данных что это такое. Картинка про фоновая передача данных что это такое. Фото фоновая передача данных что это такое

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

Запрет на использование мобильного трафика или беспроводного соединения дает возможность экономить деньги на интернете, избежать навязчивой рекламы.

Если устройство стало более медленным, или увеличился объем передаваемых данных, следует внимательно проанализировать поведение программ и поставить рамки, которые помогут исправить ситуацию.

Источник

Фоновая передача данных

Используйте фоновую передачу данных API, чтобы надежно копировать файлы по сети. API фоновой передачи данных обеспечивает дополнительные функции отправки и скачивания, которые работают в фоновом режиме в случае приостановки приложения и сохраняются в случае завершения работы приложения. API контролирует состояние сети и автоматически приостанавливает, а затем возобновляет передачу данных в случае потери соединения. Кроме того, эти процессы передачи данных регистрируются приложениями Data Sense и Battery Sense, а это означает, что процесс скачивания корректируется в зависимости от текущего состояния подключения и батареи устройства. API идеально подходит для отправки и скачивания больших файлов с помощью HTTP(S). Протокол FTP также поддерживается, но только для скачиваний.

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

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

Использование Windows.Networking.BackgroundTransfer

Как работает передача в фоновом режиме

Когда приложение использует функцию фоновой передачи данных для запуска передачи данных, настройка и инициализация запроса производятся с помощью объектов класса BackgroundDownloader или BackgroundUploader. Каждая операция передачи данных обрабатывается системой отдельно и независимо от вызывающего приложения. Если вы хотите отобразить состояние передачи данных в пользовательском интерфейсе приложения, можно использовать информацию о ходе выполнения, при этом приложение может приостанавливать, возобновлять, отменять передачу данных или даже считывать данные в процессе их передачи. Способ, которым система обрабатывает передачу данных, позволяет разумно использовать электроэнергию и предотвращать проблемы, которые могут возникнуть, когда работа подключенного приложения нарушается такими событиями, как приостановка или завершение работы либо внезапные изменения состояния сети.

В связи с ограниченностью ресурсов для каждого приложения приложение не должно создавать более 200 операций передачи (DownloadOperations + UploadOperations) в любой момент времени. Превышение этого количества может привести очередь передач этого приложения в состояние неустранимой ошибки.

При запуске приложения оно должно вызвать AttachAsync для всех существующих объектов DownloadOperation и UploadOperation. Иначе произойдет утечка уже переданных данных и в конечном итоге результативность функции фоновой передачи данных будет сведена к нулю.

Выполнение запросов файлов, которые прошли проверку подлинности, с помощью фоновой передачи данных

Функция передачи данных в фоновом режиме предоставляет методы, поддерживающие базовые учетные данные сервера и прокси-сервера, файлы cookie, а также настраиваемые заголовки HTTP (с помощью метода SetRequestHeader) для каждой операции передачи.

Как эта функция адаптируется к изменениям состояния сети или неожиданным выключениям компьютера?

При изменениях состояния сети функция передачи данных в фоновом режиме сохраняет согласованную работу каждой передачи путем интеллектуального использования сведений о подключении и состоянии тарифного плана поставщика услуг, которые предоставляются функцией Соединение. Поведение приложения в различных условиях подключения к сети определяется тарифной политикой, которая устанавливается для каждой операции передачи данных с использованием значений из BackgroundTransferCostPolicy.

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

Хотя функция фоновой передачи данных имеет собственные механизмы обработки изменений состояния сети, существуют другие общие условия сетевого подключения, применимые к приложениям с подключением к сети. Подробности см. в разделе об использовании информации о доступных сетевых подключениях.

Примечание. В приложения, работающие на мобильных устройствах, можно добавить возможности отслеживания и ограничения объема передаваемых данных в зависимости от типа подключения к сети, нахождения в роуминге и тарифного плана пользователя. Поэтому на телефоне фоновая передача данных может быть приостановлена несмотря на то, что BackgroundTransferCostPolicy сообщает о необходимости ее продолжения.

В следующей таблице показано, когда разрешена фоновая передача данных на телефоне для каждого значения BackgroundTransferCostPolicy с учетом текущего состояния телефона. Чтобы определить текущее состояние телефона, можно использовать класс ConnectionCost.

Состояние устройстваUnrestrictedOnlyПо умолчаниюВсегда
Подключение к WiFiAllowAllowAllow
Лимитное подключение, не в роуминге, лимит данных не достигнут, настроен на отслеживание расходов по тарифному плануЗапретAllowAllow
Лимитное подключение, не в роуминге, лимит данных не достигнут, настроен на отслеживание превышения лимитаЗапретЗапретAllow
Лимитное подключение, в роуминге, лимит данных не достигнутЗапретЗапретAllow
Лимитное подключение, лимит данных превышен Это состояние возможно только в случае, если пользователь выбирает «Ограничить фоновую передачу данных в Data Sense».ЗапретЗапретЗапрет

Отправка файлов

При использовании функции передачи данных в фоновом режиме передача происходит в UploadOperation, который обеспечивает доступ к методам управления, позволяющим начинать операцию заново или отменять ее. События приложения (например, приостановка или завершение работы) и изменения сетевого подключения обрабатываются системой автоматически в соответствии с UploadOperation. Операции передачи будут продолжаться в периоды приостановки приложения, либо будут приостанавливаться и сохраняться в случаях завершения работы приложения. Можно также установить свойство CostPolicy, которое определяет, будет ли ваше приложение начинать отправки, если подключение к Интернету осуществляется через сеть с лимитным тарифным планом.

В следующих примерах будет показано, как создать и инициализировать простую отправку, а также как перечислить и воспроизвести операции, сохраненные в предыдущем сеансе приложения.

Отправка одного файла

Создание отправки начинается с BackgroundUploader. Этот класс используется для предоставления методов, которые позволяют приложению настраивать параметры отправки перед созданием итоговой операции UploadOperation. В следующем примере показано, как это сделать с необходимыми объектами Uri и StorageFile.

Определение файла и места назначения отправки

Прежде чем приступить к созданию UploadOperation, нужно определить URI местоположения отправки и файл, который будет отправлен. В следующем примере значение uriString заполняется строкой, введенной в пользовательском интерфейсе, а значение file определяется объектом StorageFile, возвращенным в результате операции PickSingleFileAsync.

Создание и инициализация операции отправки

В предыдущем шаге значения uriString и file передаются экземпляру следующего примера, UploadOp, где они применяются для настройки и запуска новой операции отправки. Сначала проводится анализ uriString для создания необходимого объекта Uri.

Затем на основе свойств предоставленного класса StorageFile (file) BackgroundUploader заполняет заголовок запроса и задает свойство SourceFile с использованием объекта StorageFile. Далее вызывается метод SetRequestHeader для вставки имени файла, предоставленного в виде строки, и свойства StorageFile.Name.

Обратите внимание на асинхронные вызовы метода, определенные с помощью обещаний JavaScript. Рассмотрим строку из последнего примера:

За вызовом асинхронного метода следует оператор «then», указывающий определенные приложением методы, которые вызываются при возврате результата из асинхронного метода. Подробнее об этой технике программирования см. в разделе об асинхронном программировании на JavaScript с использованием объектов Promise.

Отправка нескольких файлов

Определение файлов и места назначения для отправки

В сценарии, включающем несколько файлов, передаваемых в одной операции UploadOperation, процесс начинается обычным способом, указывая необходимый универсальный код ресурса (URI) назначения и сведения о локальном файле. Аналогично примеру из предыдущего раздела, универсальный код ресурса (URI) предоставляется в виде строки пользователем. FileOpenPicker можно использовать для указания файлов также через пользовательский интерфейс. Однако в этом сценарии приложение должно вызвать метод PickMultipleFilesAsync, чтобы разрешить выбор нескольких файлов через пользовательский интерфейс.

Создание объектов на основе предоставленных параметров

В следующих двух примерах используется один метод из примера, startMultipart, который вызывался в конце последнего этапа. В целях обучения код в методе, создающем массив объектов BackgroundTransferContentPart, отделен от кода, создающего итоговую операцию UploadOperation.

Сначала строка URI, указанная пользователем, инициализируется как Uri. Затем массив объектов IStorageFile (файлы), переданный этому методу, проходит итерацию, каждый объект используется для создания нового объекта BackgroundTransferContentPart, который затем помещается в массив contentParts.

Создание и инициализация операции отправки, состоящей из нескольких этапов

Когда наш массив contentParts заполнен всеми объектами BackgroundTransferContentPart, каждый из которых представляет IStorageFile для отправки, мы готовы вызвать CreateUploadAsync, используя Uri для указания, куда будет направлен запрос.

Перезапуск прерванных операций отправки

После завершения или отмены UploadOperation все связанные системные ресурсы освобождаются. Однако если приложение прекратило работу до того, как это произошло, все активные операции приостанавливаются, а связанные с ними ресурсы остаются занятыми. Если эти операции не перечисляются и не воспроизводятся в следующем сеансе приложения, они не завершаются и продолжают использовать ресурсы устройства.

Перед тем как определить функцию, перечисляющую сохраненные операции, следует создать массив, который будет содержать объекты UploadOperation, возвращенные этой функцией:

Затем определяем функцию, которая перечисляет сохраненные операции и сохраняет их в нашем массиве. Обратите внимание, что метод load, вызываемый для переназначения обратных вызовов операции UploadOperation, если она сохраняется при завершении работы приложения, содержится в классе UploadOp, который будет определен ниже в этом разделе.

Скачивание файлов

При использовании функции передачи данных в фоновом режиме каждая загрузка происходит в DownloadOperation, который обеспечивает доступ к методам управления, позволяющим приостанавливать, возобновлять, перезапускать и отменять операцию. События приложения (например, приостановка или завершение работы) и изменения сетевого подключения обрабатываются системой автоматически в соответствии с DownloadOperation. Операции скачивания будут продолжаться в периоды приостановки приложения, либо будут приостанавливаться и сохраняться в случаях завершения работы приложения. Для мобильных сетевых сценариев можно установить свойство CostPolicy, которое определяет, будет ли ваше приложение начинать или продолжать скачивание, если подключение к Интернету осуществляется через сеть с лимитным тарифным планом.

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

В следующих примерах будет показано, как создать и инициализировать простое скачивание, а также как перечислить и воспроизвести операции, сохраненные в предыдущем сеансе приложения.

Настройка и запуск фонового скачивания файла

В следующем примере демонстрируется способ использования строк, представляющих универсальный код ресурса (URI), и имени файла для создания объекта Uri и класса StorageFile, в который будет помещен запрошенный файл. В этом примере новый файл автоматически помещается в заранее определенное расположение. В качестве альтернативы можно использовать FileSavePicker, это даст пользователям возможность указать расположение для сохранения файла на устройстве. Обратите внимание, что метод load, вызываемый для переназначения обратных вызовов для операции DownloadOperation, если она сохраняется при завершении работы приложения, содержится в классе DownloadOp, который будет определен ниже в этом разделе.

Обратите внимание на асинхронные вызовы метода, определенные с помощью обещаний JavaScript. См. строку 17 предыдущего примера кода:

За вызовом асинхронного метода следует оператор «then», указывающий определенные приложением методы, которые вызываются при возврате результата из асинхронного метода. Подробнее об этой технике программирования см. в разделе об асинхронном программировании на JavaScript с использованием объектов Promise.

Добавление дополнительных методов управления работой

Уровень управления может быть повышен с помощью реализации дополнительных методов DownloadOperation. Так, чтобы обеспечить возможность отменять операцию, можно добавить в пример выше следующий код.

Перечисление сохраненных операций при запуске

После завершения или отмены DownloadOperation все связанные системные ресурсы освобождаются. Однако если приложение завершает работу до того, как происходит одно из этих событий, скачивание будет приостановлено и сохранено в фоновом режиме. В следующих примерах показано, как воспроизвести приостановленное скачивание в новом сеансе приложения.

Перед тем как определить функцию, перечисляющую сохраненные операции, следует создать массив, который будет содержать объекты DownloadOperation, возвращенные этой функцией:

Затем определяем функцию, которая перечисляет сохраненные операции и сохраняет их в нашем массиве. Обратите внимание, что метод load, вызываемый для переназначения обратных вызовов для сохраненной операции DownloadOperation, содержится в примере DownloadOp, который будет определен ниже в этом разделе.

Теперь вы можете использовать заполненный список для перезапуска невыполненных операций.

постобработка.

Новая функция в Windows 10 — возможность выполнения кода приложения после завершения фоновой передачи данных, даже когда приложение не запущено. Например, приложению может потребоваться обновление списка доступных фильмов после завершения скачивания фильма, вместо того, чтобы ваше приложение искало новые фильмы при каждом запуске. Или приложению может потребоваться обработка неудачной передачи файла путем повторения попытки использовать другой сервер или порт. Постобработка вызывается как для успешных, так и для неудачных передач, чтобы ее можно было использовать для реализации логики повтора и пользовательской обработки ошибок.

Постобработка использует существующую инфраструктуру фоновой задачи. Вы создадите фоновую задачу и свяжете ее с передачами перед началом передачи. Передачи затем выполняются в фоновом режиме и после выполнения ваша фоновая задача вызывается для постобработки.

Завершающая обработка использует новый класс, BackgroundTransferCompletionGroup. Этот класс похож на существующий BackgroundTransferGroup тем, что он позволяет вам группировать фоновые передачи данных вместе, но BackgroundTransferCompletionGroup позволяет указывать фоновую задачу для запуска после завершения передачи.

Начните фоновую передачу данных с постобработкой следующим образом.

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

Также обратите внимание, что постобработка не заменит обработчики завершения переднего плана. Если ваше приложение определяет обработчик завершения переднего плана, и ваше приложение работает на момент завершения передачи файла, в таком случае будут вызваны обработчик завершения на переднем плане и обработчик завершения в фоновом режиме. Порядок, в котором задачи переднего плана и фоновые задачи вызываются, не гарантируется. Если указать оба, вы должны убедиться, что две задачи будут работать надлежащим образом и не будут мешать друг другу, если будут выполняться одновременно.

Тайм-ауты запросов

Таким образом, следует учитывать два основных сценария тайм-аута подключения.

При отсутствии ответа на запрос нового подключения для передачи в течение пяти минут такой запрос отменяется.

Если подключение установлено, любой HTTP-запрос отменяется при отсутствии ответа в течение двух минут.

Примечание. В данных сценариях при условии наличия подключения к Интернету функция передачи данных в фоновом режиме автоматически повторит отправку запроса до трех раз. Если подключение к Интернету не было обнаружено, дополнительные запросы будут ожидать его обнаружения.

Руководство по отладке

Остановка сеанса отладки в Microsoft Visual Studio сопоставима с закрытием приложения: отправки PUT при этом приостанавливаются, а отправки POST завершаются. Даже в процессе отладки ваше приложение должно перечислить, а затем перезапустить или отменить любые оставшиеся отправки. Например, можно сделать так, чтобы приложение отменяло перечисленные сохранившиеся операции отправки при запуске приложения, если предыдущие операции не имеют значения для данного сеанса отладки.

Можно сделать, чтобы при перечислении скачиваний и отправок во время запуска приложения в процессе сеанса отладки приложение отменяло их, если для данного сеанса отладки предыдущие операции не важны. Обратите внимание, что при наличии обновлений проекта Visual Studio, таких как изменения в манифесте приложения, когда приложение удаляется и развертывается заново, GetCurrentUploadsAsync не может перечислить операции, созданные при предыдущем развертывании.

При использовании фоновой передачи данных во время разработки возможны ситуации, когда внутренние кэши активных и завершенных операций передачи могут выйти из синхронизации. Это может привести к невозможности запуска новой операции передачи или взаимодействия с существующими операциями и объектами BackgroundTransferGroup. В ряде случаев попытка взаимодействия с существующими операциями способна вызвать сбой. Это может произойти, если свойству TransferBehavior задано значение Parallel. Такая проблема присуща определенным сценариям во время разработки и не затрагивает конечных пользователей приложения.

Проблема может возникнуть в четырех сценариях с использованием Visual Studio:

Обычное обслуживание приложения, включая обновления манифеста, добавляющие или удаляющие возможности, не вызывает данную проблему при развертывании приложения у конечных пользователей. Чтобы обойти проблему, полностью удалите все версии приложения и повторите развертывание с новым языком, архитектурой, культурой или возможностью. Это можно сделать, используя начальный экран или PowerShell и командлет Remove-AppxPackage.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *