Android:轻量级解决方案,用于检测按键

时间:2010-08-23 12:23:47

标签: android mobile

在Android中我正在编写一个应用程序,如果用户不进行任何活动(点按/按键),我想捕获一个事件。

更好的上下文 - 就像会话超时一样。

基本解决方案 - 我可以覆盖按键/敲击事件并放置一个连续运行的计时器作为线程或服务。在我看来,这在资源方面是一个更重的解决方案。

对优雅解决方案的任何想法?

1 个答案:

答案 0 :(得分:1)

活动类字段:

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

在Activity.onCreate()中:

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.onDestroy()中:

checkKey = false;
Activity.onKeyDown()中的

lastKeyEventTime = System.currentTimeMillis();