Android Work Manager против служб? - PullRequest
0 голосов
/ 15 мая 2018

В моем приложении для Android у меня есть несколько служб намерений, которые запускаются одна за другой, и самая первая служба намерений запускается трансляцией.Я наткнулся на Work Manager несколько дней назад, и мне очень понравилась простота классов Worker и WorkManager.Каковы плюсы и минусы Work Manager по сравнению с обычными сервисами?Должен ли я перейти на работу менеджера сейчас, учитывая тот факт, что мне, возможно, придется написать больше намеренных услуг в будущем?Кроме того, какой вариант поможет мне легко проверить код?

1 Ответ

0 голосов
/ 16 мая 2018

WorkManager поставляется со следующими функциями:

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

Ниже были бы случаи, когда это было бы полезно:

  • Выполнение длительных фоновых задач, таких как загрузка мультимедиа
  • Анализ и хранение данных в базе данных.
  • Критические задачи, которые необходимо пережить при смерти процесса

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

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

WorkManager не отвечает на все фоновые задачи. НАПРИМЕР. Вы не должны использовать его для обработки платежей, так как он не должен переживать смерть процесса, и эти задачи должны быть выполнены немедленно. Рассмотрите возможность использования Foreground Service. Также не очень хорошая идея использовать их для анализа данных и содержимого представления.

Вам действительно нужно взвесить, нужны ли вам его возможности, прежде чем его использовать. Так как Google практически пересматривает способ кодирования, WorkManager будет решением наших проблем с фоновой обработкой. Наверняка это будет самый важный вариант, поскольку он абстрагируется от обработки нескольких ограничений, накладываемых ОС. Вы должны рассмотреть возможность использования его для будущих реализаций.

Кроме того, какой вариант поможет мне легко проверить код?

Google также предоставил библиотеку тестирования, которая облегчает тестирование WorkManager. Он все еще находится в стадии разработки, но должен стать более мощным до его выпуска.

...