我想在我的Android应用中检测到“用户不活动”。更确切地说:我想检测用户是否未与我的应用程序进行任何交互(触摸屏幕,滚动,输入文本......)特定时间。从技术上讲,我使用的是在每次(用户)交互中重置的计时器。
在我的活动中,我重写 onUserInteraction 方法来检测滚动,触摸屏幕等交互...
@Override
public void onUserInteraction(){
resetInactiveTimer();
}
不幸的是,当用户与软键盘交互时,不会调用onUserInteraction。我认为原因是软键盘不属于我的活动。
对于我的应用中的编辑文本,我使用 TextWatcher 和 onTextChanged 方法,它可以正常工作。但我的应用程序还包含一个加载任意网页的WebView。当然,有些网页可能包含输入字段,我不知道如何检测用户是否与软键盘交互以编辑这些文本字段。
答案 0 :(得分:1)
还对此感兴趣吗?
您的活动实施KeyEvent.Callback
,因此您可以覆盖onKeyDown
:
@Override
public boolean onKeyDown (int keyCode, KeyEvent event) {
resetInactiveTimer();
return false;
}
或者,(在最常见的情况下)如果使用EditText
或类似的光标按下键,则需要实现OnKeyListener
并使用onKey
方法致电resetInactiveTimer();