Вы можете сохранить дату при использовании асинхронной задачи в общих настройках.Таким образом, всякий раз, когда начинается основное действие, вы можете проверить текущую дату и дату в общих настройках, если она превышает 7 дней, вы можете снова выполнить асинхронную задачу и обновить сохраненную дату до текущей даты.
IПолагаю, вы уже знаете, как поместить строки в общие настройки и получить к ним доступ.
Это просто основной код того, что нужно делать.Вам нужно будет немного его изменить, чтобы он работал на вас.
private static String getToday(){
Calendar objCalendar = new GregorianCalendar(Calendar.getInstance().getTimeZone());
DateFormat objFormatter = new SimpleDateFormat("dd-MM-yyyy");
return objFormatter.format(objCalendar.getTime());
}
private static String getAfter7DaysDate(){
Calendar objCalendar = new GregorianCalendar(Calendar.getInstance().getTimeZone());
DateFormat objFormatter = new SimpleDateFormat("dd-MM-yyyy");
objCalendar.add(Calendar.DATE, 7);
return objFormatter.format(objCalendar.getTime());
}
public int daysBetween(Date d1, Date d2){
return (int)( (d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24));
}
Если вы поместите это в onCreate
String today = getToday();
String afterSevenDate = getAfter7DaysDate();
DateFormat objFormatter = new SimpleDateFormat("dd-MM-yyyy");
try {
Log.e(today,Integer.toString(daysBetween(objFormatter.parse(today),
objFormatter.parse(afterSevenDate))));
} catch (ParseException e) {
e.printStackTrace();
}
Приведенный выше код просто извлекает текущую дату,дата после 7 дней, а также найти разницу в днях между 2 датами.Вам нужно будет получить сохраненную дату, найти дату после 7 дней и проверить, является ли разница между текущей датой> = от 7. Если это правда, выполните асинхронную задачу.
Это простой способ.чтобы сделать это.
Как упоминал ДжоЛаллуз, это будет работать только в том случае, если пользователь перейдет к этой деятельности.Но это сработает, даже если он откроется через месяц из-за проверки> =.Но если вам нужно сделать это, даже если пользователь не открывает ваше приложение, вам нужно заглянуть в класс AlarmManager.