Я хочу обнаружить «неактивность пользователя» в своем приложении для Android. Точнее: я хочу определить, не сделал ли пользователь какое-либо взаимодействие с моим приложением (касаясь экрана, прокрутки, ввода текста ...) в течение определенного времени. Технически я использую таймер, который сбрасывается при каждом (пользовательском) взаимодействии.Android: обнаружение неактивности пользователя/ввод (клавиатура) клавиатуры ввода
В моей деятельности я переопределить метод onUserInteraction для обнаружения взаимодействия с прокруткой, прикасаясь к экрану ...
@Override
public void onUserInteraction(){
resetInactiveTimer();
}
К сожалению, onUserInteraction не вызывается, когда пользователь взаимодействует с мягкой клавиатурой. Я думаю, причина в том, что мягкая клавиатура не входит в мою активность.
Для редактирования текстов в моем приложении я использую TextWatcher и OnTextChanged метод, который работает отлично. Но мое приложение также содержит WebView, который загружает произвольные веб-страницы. Конечно, некоторые веб-страницы могут содержать поля ввода, и я не знаю, как обнаружить, что пользователь взаимодействует с мягкой клавиатурой для редактирования этих текстовых полей.
Методы ввода не требуются для отправки ключевых событий. На самом деле программная клавиатура jelly beans не посылает никакого ключевого события при нажатии backspace. –
Но здесь проблема в том, что onUserInteraction не вызывается, когда вы печатаете в edittext. Также, если я хочу использовать onKeyDown или onKey, я должен установить ключевой пресс-прослушиватель для каждого edittext. Есть ли общий вариант, где я могу отслеживать любое событие нажатия клавиши с клавиатуры? – Smeet