onUserInteraction方法不足以应用程序超时

时间:2016-01-06 16:57:33

标签: android

我有一个应用程序需要在没有检测到任何活动后将用户注销。我使用的计时器在用户与应用程序交互时重置。我一直在使用OnUserInteraction方法;但是这不会跟踪与软键盘的交互。

@Override
public void onUserInteraction() {
    super.onUserInteraction();
    logoutTimer.RestartTimer();
}

我的问题是这个应用程序允许用户输入文本(没有限制),并且应用程序在输入文本的过程中将用户输出。是否有另一种方法可以在软键盘上按下按键? (我知道我可以在editText上创建一个监听器,但是在不同的片段上有多个editTexts,并且想知道是否有更好的方法)

1 个答案:

答案 0 :(得分:0)

我想只有通过onUserInteraction才能做到这一点。您可以扩展EditText,在其中设置TextWatcher并捕获TextWatcher回调中与此EditText的所有交互。然后你必须在你使用标准EditText的所有地方替换你新创建的EditText。我试图在托管我的EditText的活动中覆盖onKeyEvent()方法,并在onKeyDown或onKeyUp中刷新计时器,但无济于事。 SoftInput似乎将所有触摸重定向到您的活动,而不是重定向到它自己的Window,这就是为什么您不会在活动中看到任何keyEvents。