Можно ли использовать фоновую задачу для обработки данных с сервера каждые 1 се c? - PullRequest
0 голосов
/ 16 января 2020

Я бы хотел выделить 1% вычислительной мощности каждого устройства, на которое установлено мое приложение, для большей пользы. Фоновая задача должна запускаться после открытия приложения и продолжаться при выходе из приложения для многозадачной работы.

Фоновая задача

  1. Загрузка небольших объемов данных (<1 КБ) каждые 1 сек c. </li>
  2. Обработайте их, используя 1% вычислительной мощности устройства.
  3. Редко загружайте небольшие объемы данных (<1 КБ). </li>

В приведенном ниже примере я использую MySQL, но это точно не будет сделано с MySQL.

Кроме того, обратите внимание, что фактические числа будут в значительной степени оптимизировано в конце и вот откуда взялась цифра в 1%.

Очевидно, что я не могу специально сказать устройству использовать 1% его вычислительной мощности.

Открыть приложение

Подключиться к MySQL серверу.

Загрузить данные

Должен прочитать ячейку в базе данных MySQL с данными размером менее 1 КБ каждые 1 сек c.

Обработка

Требуется чтение Относительно большой объем данных (1 МБ) с устройства каждые 1 сек c.

Загрузить данные

Редко следует записать ячейку в MySQL база данных с данными размером менее 1 КБ.

Kill App

Отключение от базы данных.

Я понял, где мобильные устройства превосходят их скорость памяти и inte rnet подключение .

Будет ли многократное чтение из базы данных MySQL и диска устройства ухудшать его производительность и время автономной работы?

Самое главное, допускают ли iOS и Android сложные фоновые задачи такого рода?

Ответы [ 3 ]

0 голосов
/ 16 января 2020

Нет, iOS не поддерживает этот вид фоновой обработки (выполняется постоянно)

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

Эти задачи ограничены продолжительностью в несколько минут для каждого вызова, и хотя вы можете запросить «самую раннюю дату начала», вы не можете указать ни c время начала, ни частоту выполнения.

0 голосов
/ 17 января 2020

Android позволяет выполнять эти сложные фоновые задачи, а iOS - нет.

0 голосов
/ 16 января 2020

Используйте services для этой цели:

Документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...