Ich möchte "Benutzer Inaktivität" in meiner Android App erkennen. Um genau zu sein: Ich möchte feststellen, ob der Benutzer für eine bestimmte Zeit KEINE Interaktion mit meiner App gemacht hat (Berühren des Bildschirms, Scrollen, Eingabe von Texten ...). Technisch verwende ich einen Timer, der bei jeder (Benutzer-) Interaktion zurückgesetzt wird.Android: Benutzerinaktivität erkennen/Tastatureingabe (Softkeyboard) erkennen
In meiner Tätigkeit habe ich die onUserInteraction Methode überschreiben, um Wechselwirkungen zu erkennen wie Scrollen, den Bildschirm zu berühren ...
@Override
public void onUserInteraction(){
resetInactiveTimer();
}
Leider ist onUserInteraction nicht aufgerufen, wenn der Benutzer mit der Soft-Tastatur interagiert. Ich denke der Grund ist, dass die Soft-Tastatur nicht Teil meiner Activity ist.
Für bearbeiten Texte in meiner app verwende ich TextWatcher und die OnTextChanged Methode, die gut funktioniert. Aber meine App enthält auch ein WebView, das beliebige Webseiten lädt. Natürlich könnten einige Webseiten Eingabefelder enthalten und ich weiß nicht, wie man erkennt, dass der Benutzer mit der Soft-Tastatur interagiert, um diese Textfelder zu bearbeiten.
Eingabemethoden sind nicht erforderlich, um wichtige Ereignisse zu senden. In der Tat sendet Jelly-Beans-Softkeyboard kein Schlüsselereignis, wenn die Rücktaste gedrückt wird. –
Aber hier Problem ist, dass OnUserInteraction nicht aufgerufen wird, wenn Sie in Editiertext eingeben. Auch wenn ich onKeyDown oder onKey verwenden möchte, muss ich den Listener auf jeden Edittext drücken. Gibt es eine allgemeine Option, mit der ich jedes Tastendruckereignis über die Soft-Tastatur verfolgen kann? – Smeet