как узнать, простаивает ли пользовательский интерфейс в течение X времени?

#java #android

#java #Android

Вопрос:

У меня есть серверное приложение. Которые задают вопросы пользователям. Что я хочу сделать. Если пользователь ничего не делал с пользовательским интерфейсом для монетного двора 1… Затем я должен завершить работу сервера.

Что я должен для этого сделать?

Я знаю ACTION_SCREEN_OFF. Это событие фактически вызывается по истечении экранного времени. Это может быть 30 минут? зависит от настроек пользователя. Но предположим, что пользователь установил тайм-аут на 30 минут. и это событие будет вызвано через 30 минут. Но я хочу знать, простаивает ли пользовательский интерфейс только для 1 mint.

Ответ №1:

Как правило, я устанавливаю прослушиватель трансляции SCREEN_OFF в свой код (не как запись манифеста, а просто как динамический прослушиватель)… если он запускается, то я знаю, что пользователь простаивал до тех пор, пока его определение «слишком долго».

Комментарии:

1. не могли бы вы прислать мне ссылку?

2. Самая первая ссылка, которая появляется, когда я гуглю «screen_off receiver», кажется довольно актуальной. thinkandroid.wordpress.com/2010/01/24 /…

3. Это не то, что я искал. Вы не поняли мою точку зрения. Это событие фактически вызывается по истечении экранного времени. Это может быть 30 минут? зависит от настроек пользователя. Но предположим, что пользователь установил тайм-аут на 30 минут. и это событие будет вызвано через 30 минут. Но я хочу знать, простаивает ли пользовательский интерфейс только для 1 mint.

4. Android не предоставляет вам именно то, что вы ищете, поэтому вам нужно проявить творческий подход к поиску решения, соответствующего вашим требованиям. Если SCREEN_OFF вас не удовлетворяет, вы могли бы реализовать комбинацию собственного сторожевого потока в сочетании с усердием в сбросе этого сторожевого таймера каждый раз, когда пользователь взаимодействует с вашим приложением… просто не забудьте сделать что-нибудь и в вашей процедуре onPause() .