2011-01-14 159 views
5

我想在我的Android應用程序中檢測到「用戶不活動」。更確切地說:我想檢測用戶是否沒有與我的應用程序進行任何交互(觸摸屏幕,滾動,輸入文本...)一段時間。從技術上講,我使用每個(用戶)交互重置的計時器。Android:檢測用戶不活動/檢測(軟鍵盤)鍵盤輸入

在我的活動,我重寫onUserInteraction法檢測像滾動,觸摸屏互動......

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

不幸的是,onUserInteraction不是當用戶使用軟鍵盤交互調用。我認爲原因是,軟鍵盤不屬於我的活動。

對於我的應用程序編輯的文本我用TextWatcheronTextChanged方法,工作正常。但我的應用程序還包含加載任意網頁的WebView。當然一些網頁可能包含輸入字段,我不知道如何檢測用戶與軟鍵盤交互以編輯這些文本字段。

回答

1

仍然對此感興趣嗎?

您的活動實現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