2015-09-09 10 views
1

Что я хочу достичь:Android - Получить время простоя на уровне приложений

после 3 минут бездействия пользователя, я хочу, чтобы отобразить новый вид деятельности.

Исследование:

Я смотрю на Stackoverflow этой проблемы, и я нашел некоторые подсказки о том, как это сделать с помощью фонового потока, создать базовую деятельность, зарегистрировать последний штрих и т.д.

Проблема:

Если у меня есть более чем, допустим, 20 действий, и я не хочу распространять все действия из базы. Это будет означать, что каждый раз, когда я создаю новую деятельность, мне нужно расширить эту базовую, что может создать беспорядок, если мои действия уже распространяются на некоторые другие базовые действия. Я хотел бы использовать приложение класса для обработки этого, так что действия останутся прежними.

Как я могу достичь этого, не касаясь уже созданных действий? Или мне всегда приходится обращаться с onUserInteraction() или onPause() или любыми другими способами в Activity?

ссылки исследований:

Application idle time

Detect when application is idle in android

how to detect user inactivity in android

ответ

0

Боюсь, вам необходимо собрать информацию об открытых деятельности где-то (какой-то коллекции, может быть). Вы можете сохранить эту коллекцию в классе Application и написать некоторые методы для деятельности, чтобы сообщить об открытии и закрытии. В методе закрытия мероприятия вы можете проверить, пуста ли ваша коллекция, а затем запустить некоторое замедленное событие в обработчике или таймере (открытие нового действия), а в методе открытого действия вы можете аннулировать эту задержанную задачу.

Это очень общий способ достижения вашей цели.

 Смежные вопросы

  • Нет связанных вопросов^_^