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

标签 android android-softkeyboard user-inactivity

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

在我的 Activity 中,我覆盖了 onUserInteraction 方法来检测滚动、触摸屏幕等交互......

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

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

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

最佳答案

仍然对此感兴趣吗?

您的 Activity 实现了 KeyEvent.Callback,因此您可以覆盖 onKeyDown:

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

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

关于Android:检测用户不活动/检测(软键盘)键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4690147/

相关文章:

Android:有人知道 "settings"图标的文件名吗?

android - 以 block 的形式从 AWS DynamoDB 获取数据

android - 软键盘覆盖 editText

带有 KeyIcon 的 Android 自定义软键盘

android - LocationClient 无法解析 android studio 中的符号?

android - 如何在Android中设置壁纸

打开软键盘时,Android pie edittext 键入的文本不显示

c# - 不活动和事件,应用程序空闲,用户不活动自动注销

fullscreen - 观看全屏视频时防止 xautolock/i3lock