Задержка фоновой задачи для запуска один раз после серии событий - PullRequest
0 голосов
/ 29 января 2019

Я реализовал это с комбинацией HandlerThread внутри Service, используя removeCallbacks из Handler для задачи, а затем повторно postDelayed, чтобы убедиться, что она выполняется только один раз и после того, как требуетсязадержка прошла с последнего события, все это, удерживая WakeLock, чтобы убедиться, что устройство не переходит в спящий режим до того, как задача должна быть завершена и завершена.

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

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

1 Ответ

0 голосов
/ 29 января 2019

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

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

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

Посмотрите здесь для получения дополнительной информации: https://blog.gojekengineering.com/multi-threading-like-a-boss-in-android-with-rxjava-2-b8b7cf6eb5e2

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