Android:检测用户不活动/检测(软键盘)键盘输入

时间:2011-01-14 10:36:03

标签: android android-softkeyboard user-inactivity

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

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

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

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

对于我的应用中的编辑文本,我使用 TextWatcher onTextChanged 方法,它可以正常工作。但我的应用程序还包含一个加载任意网页的WebView。当然,有些网页可能包含输入字段,我不知道如何检测用户是否与软键盘交互以编辑这些文本字段。

1 个答案:

答案 0 :(得分:1)

还对此感兴趣吗?

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

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

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