10

我想在我的 Android 应用中检测“用户不活动”。更准确地说:我想检测用户是否在特定时间内没有与我的应用程序进行任何交互(触摸屏幕、滚动、输入文本......)。从技术上讲,我使用在每次(用户)交互时重置的计时器。

在我的活动中,我重写了onUserInteraction方法来检测滚动、触摸屏幕等交互...

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

不幸的是,当用户与软键盘交互时,不会调用 onUserInteraction。我认为原因是,软键盘不是我活动的一部分。

对于我的应用程序中的编辑文本,我使用TextWatcheronTextChanged方法,效果很好。但我的应用程序还包含一个加载任意网页的 WebView。当然,一些网页可能包含输入字段,我不知道如何检测用户与软键盘交互以编辑这些文本字段。

4

1 回答 1

1

还是对这个感兴趣?

您的活动实现KeyEvent.Callback,因此您可以覆盖onKeyDown

@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
    resetInactiveTimer();
    return false;
}

或者,(在最常见的情况下)如果用光标按下键EditText或类似,您将需要实现OnKeyListener并使用该onKey方法调用resetInactiveTimer();

于 2011-05-08T16:31:45.197 回答