Ответ 1
Просто наткнулся на этот вопрос как Я уже сейчас ответил на что-то подобное.
Лично я бы выбрал вариант 2, который вы предложили, и поместил таймер в синглтон, чтобы он был доступен во всех действиях. Нет необходимости в отдельном таймере обратного отсчета, если у вас нет особых требований реагировать друг на друга по различным функциям вашего приложения.
Почему вы хотите reset таймер в onCreate? Вы должны делать это каждый раз, когда пользователь взаимодействует с приложением, например, в методе activity.onUserInteraction().
Чтобы процитировать мой предыдущий ответ :
Вам нужно будет немного подумать о том, что требования здесь, но из того, что я могу сказать, вы хотите сохранить отслеживание пользовательских взаимодействий, и если срок истекает с момента последнее взаимодействие, выполнить некоторые действия, в вашем случае вывести их из системы вашего приложения.
Во-первых, вам понадобится место, которое вы можете отслеживать, когда последний произошло взаимодействие, так как вы хотите, чтобы это было широко распространенное приложение может использовать синглтон, чтобы удерживать это, или переопределить класс Application, в любом случае.
Затем вам нужно будет начать отслеживать взаимодействие пользователей. От твоего действий, вы можете переопределить метод onUserInteraction, это получает вызывается в любое время, когда пользователь взаимодействует с приложением, таким как ключ мероприятие. Каждый раз, когда вы нажимаете этот метод, обновляйте свой синглтон и дайте ему что-то случилось, с меткой времени.
Наконец, вам понадобится какая-то проверка цикла, чтобы постоянно проверять, что-то случилось недавно. Theres различные делали это, вы может иметь непрерывный цикл, который сравнивает текущую временную метку с последнее записанное событие, бит кода проекта:
while(true)
{
if (timeLastEventRecorded < (now - 15))
{
//nothing has happened in 15 minutes, so take corrective action
}
}
Предположительно, у вас уже есть код в приложении, который заботится о выходах, например, когда пользователь нажимает "выйти из системы", вы должен просто иметь возможность вызвать это в примере выше.