Как лучше организовать заведомо долгий отложенный поток?
Насколько сильно мучается телефон выполняя каждый из этих потоков?
А если для случая #2 секунды сменить на милисекунды? Наносекунды?
p.s. это выполняется в ForegroundService
ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.schedule(new Runnable() {
// JOB
}, 24, TimeUnit.HOURS);
ИЛИ
2. Каждую секунду сравнивать текущее VS целевое время (изначально между ними разница в 24 часа)ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(new Runnable() {
if (текущее время >= выбранного времени){
//JOB
}
}, 0, 1, TimeUnit.SECONDS);
Для вашей цели следует использовать инструменты, которые предоставляет Android для запуска отложенных задач, например AlarmManager, JobScheduler или библиотеку WorkManager. Дело в том, что ForegroundService
вообще не даст телефону уснуть в течении всего этого времени, что вызовет заметный расход батареи вашим приложением на фоне других. ScheduledExecutorService
это чисто класс Java и больше предназначен для бекенд приложений, которые выполняются постоянно. Android приложения не должны выполняться постоянно если нет для этого необходимости (а ее нет, если нужно просто ждать). Поэтому лучше предоставить запуск запланированной задачи Android.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Решил порешать задачи которые готовит ЯндексНаткнулся на первые трудности в виде задачи про дубликаты:
Использую библиотеку materializecssНа главной странице проекта вывожу раскрывающиеся карточки, в три колонки
Всем приветМогли бы подсказать где копать? Есть приложение, созданное и есть Доска объявлений (это мои приложения)