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

问题描述:

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

在我的活动,我重写onUserInteraction法检测像滚动,触摸屏互动......

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

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

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

仍然对此感兴趣吗?

您的活动实现KeyEvent.Callback,这样你就可以覆盖onKeyDown

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

或者,(最常见的情况),如果该键是在EditText或类似的压制与光标,你将需要实施OnKeyListener并使用onKey方法调用resetInactiveTimer();

+0

输入方法不需要发送关键事件。事实上,果冻豆软键盘在按下退格键时不会发送任何关键事件。 – 2013-11-01 22:20:34