Chcę wykryć "brak aktywności użytkownika" w mojej aplikacji na Androida. Mówiąc dokładniej: chcę wykryć, czy użytkownik NIE wykonał żadnej interakcji z moją aplikacją (dotykając ekranu, przewijając, wprowadzając teksty ...) przez określony czas. Technicznie używam timera, który jest zresetowany w każdej interakcji (użytkownika).Android: Wykrywanie nieaktywności użytkownika/Wykrywanie klawiatury (z klawiatury programowej)
W mojej działalności, I zastąpić metodę onUserInteraction wykrywania interakcji, takich jak przewijanie, dotykanie ekranu ...
@Override
public void onUserInteraction(){
resetInactiveTimer();
}
Niestety onUserInteraction nie jest wywoływana, gdy użytkownik wchodzi w interakcję z miękkiej klawiatury. Myślę, że powodem jest to, że miękka klawiatura nie jest częścią mojej działalności.
tekstów Edycja w mojej aplikacji używam TextWatcher i onTextChanged metodę, która działa dobrze. Ale moja aplikacja zawiera również WebView, który ładuje dowolne strony internetowe. Oczywiście niektóre strony internetowe mogą zawierać pola wejściowe i nie wiem, jak wykryć, że użytkownik współdziała z klawiaturą programową, aby edytować te pola tekstowe.
Metody wprowadzania nie są wymagane do wysyłania kluczowych zdarzeń. W rzeczywistości softkeyboard z galaretką nie wysyła żadnego kluczowego zdarzenia po naciśnięciu Backspace. –
Ale tutaj chodzi o to, że funkcja onUserInteraction nie jest wywoływana podczas pisania w edytorze tekstu. Również jeśli chcę używać onKeyDown lub onKey, muszę ustawić key press listener na każdy editekst. Czy jest jakaś ogólna opcja, w której mogę śledzić każde zdarzenie keypress z miękkiej klawiatury? – Smeet