Я бы просто сохранил дату последнего щелчка (например, в SharedPreference
), и каждый раз, когда активность / фрагмент становится активным, вы проверяете значение и вычитаете его до текущей даты.
Если ваше приложение является общедоступным, в котором пользователь имеет возможность изменять часы устройства, вы можете настроить BroadcastReceiver
, который срабатывает при каждом изменении часов, блокирует ваше приложение или выполняет соответствующее действие.
Если эта кнопка срабатывает и выполняет действие в каком-либо собственном API, лучший способ справиться с ней - записать последний раз на вашем сервере. Помните, что мы ограничены во многих отношениях в клиентском приложении.
Да, итераторы std :: list
- это просто указатели на узел. Вы можете вставлять, удалять (другие узлы) и переупорядочивать узлы в списке, и итератор не становится недействительным.
Да
Стандартные получатели грантов, которые используют итераторы в списке, не будут признаны недействительными, если элемент, на который они указывают (образно говоря), не будет удален из списка.
С этой страницы: http://www.sgi.com/tech /stl/List.html
Lists have the important property that insertion and splicing do not
invalidate iterators to list elements, and that even removal invalidates
only the iterators that point to the elements that are removed.