2010-08-23 4 views
0

Android에서는 사용자가 아무런 활동 (태핑/키 누름)을하지 않는 경우 이벤트를 캡처하고 싶습니다.Android : 키 누르기를 감지하는 가벼운 무게 솔루션

더 나은 컨텍스트 - 세션 시간 초과와 같습니다.

기본 솔루션 - 키 누르기/탭핑 이벤트를 무시하고 지속적으로 스레드 또는 서비스로 실행되는 하나의 타이머를 넣을 수 있습니다. 제 생각에는 이것은 자원면에서 조금 무거운 해결책입니다.

우아한 솔루션에 대한 의견이 있으십니까?

답변

1

활동 클래스 필드 :은 Activity.onCreate()에서

private static final int KEY_TIMEOUT = 60000; 
private long lastKeyEventTime; 
private boolean checkKey; 

: Activity.onDestroy()에서

checkKey = true; 

Thread t = new Thread(){ 
    while (checkKey){ 
     if (lastKeyEventTime!=0 && System.currentTimeMillis()-lastKeyEventTime>TIMEOUT){ 
      // TIMEOUT 
     } 

     try { 
      Thread.sleep(500); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
t.start(); 

: Activity.onKeyDown()에서

checkKey = false; 

:

lastKeyEventTime = System.currentTimeMillis(); 
관련 문제