Автоматичний скидання кроків в кінці кожного дня

Автоматичний скидання кроків в кінці кожного дня

3 Березня 2024 в 16:53 32

Виконати код о 11:59 PM кожного дня, але не під час запуску.

Маю код, який зберігає кількість кроків у базі даних кожну годину:

Тепер я хочу реалізувати схожу функціональність для скидання кроків щодня. Раніше я мав кнопку для цього для тестування, але пізніше спробував System.currentTimeMillis(), який повертав час при запуску, і не динамічно оновлювався. Тому я хочу використовувати Timer() для запуску цього коду кожні 24 години. Проте, він також запускається при кожному запуску програми, що не є доречно.

Код для скидання кроків виглядає наступним чином:

Функціональність працює ідеально, просто я не хочу, щоб вона працювала випадково під час відкриття додатка. Я хочу, щоб це відбувалося о 11:59 PM кожного дня.

Я спробував витягнути це з функції onCreate, але тоді resetStepsTimer.schedule(resetTask, 0L, 1000*60*60*24) викликає помилку з оголошенням елемента, і не працюватиме без доступу до деяких змінних (таких як textViewSteps).

Також я спробував:

Але з цим, мабуть, потрібно використовувати іншу активність у намірі, а я намагаюся зберегти цю функціональність всередині тієї ж самої активності, якщо є спосіб використати AlarmManager у цьому MainActivity?