Android: Обнаружение бездействия пользователя / Обнаружение ввода с клавиатуры (программная клавиатура)

Я хочу обнаружить "бездействие пользователя" в мое приложение для Android. Чтобы быть более точным: я хочу определить, не выполнял ли пользователь какое-либо взаимодействие с моим приложением (касание экрана, прокрутка, ввод текста ...) в течение определенного времени. Технически я использую таймер, который сбрасывается при каждом взаимодействии (с пользователем).

В своей деятельности я переопределяю метод onUserInteraction для обнаружения таких взаимодействий, как прокрутка, касание экрана ...

@Override
public void onUserInteraction(){
    resetInactiveTimer();
}

К сожалению, onUserInteraction не вызывается, когда пользователь взаимодействует с виртуальной клавиатурой. Я думаю, причина в том, что мягкая клавиатура не является частью моей деятельности.

Для редактирования текстов в моем приложении я использую TextWatcher и метод onTextChanged , который отлично работает. Но мое приложение также содержит WebView, который загружает произвольные веб-страницы. Конечно, некоторые веб-страницы могут содержать поля ввода, и я не знаю, как определить, что пользователь взаимодействует с виртуальной клавиатурой для редактирования этих текстовых полей.

8
задан janjonas 14 January 2011 в 10:36
поделиться