Как сделать так, чтобы приложение что-то выполнило после закрытия через какое-то время?
Есть обычное приложения. Пользователь сделал какие-то действия в приложении, но мне надо чтобы эти действия отменились ровно через сутки, после того как поменял. Как такое можно реализовать, с помощью чего?
и геттер настройки можно переписать так
//
if(версия бесплатная && действует_до < текущей_даты_времени){
return дефолтное_значение.
}
return значение настройки;
не, я с БД работаю. И в БД есть столбец, который отвечает делали ли это задание сегодня. И раз в сутки значение должно сбрасываться, чтобы на след. день его снова сделать.
другой вариант поле недоступно до.
При выполнении к текущему дате-времени прибавляете сутки/неделю.
В этом случае select будет проще (если они у вас в одной ленте) и можно обойтись без джоинов для разной периодичности
У вас в базе сейчас поле целого типа / булевого / enum
То есть Вы просто фиксируете делал или нет сегодня.
select * .... where delal=0
а) Можно фиксировать когда делал
select * ... where delal<'2020-03-06 23:36:00' - минус сутки
б) Можно писать в поле до какого времени нельзя делать еще раз
select * ... where freeze
Если нужно показывать все, а не только доступные, то
вместо прямого обращения как раньше было к полю делал_или_нет
теперь вызывайте псевдо-гетер, который сравнит поле даты с текущем временем и вернет как раньше булево
Можно через сервисы (Service).
Можно через сохранение на сервере в базе данных и там уже крутить всю логику.
Проще всего при старте приложения проверять дату предыдущего действия и отменять, если прошло более суток.
Но для задачи топик стартера . Показать задания, которые не делали сегодня .
Инструмент малость не подходящий. Костылить черте что вместо правильной организации базы данных. Булево поле поменять на дату-время и проблема решена.
первый коммент к моему ответу
Slavik12 Slavik12 Автор вопроса
не, я с БД работаю. И в БД есть столбец, который отвечает делали ли это задание сегодня. И раз в сутки значение должно сбрасываться, чтобы на след. день его снова сделать.