在Android中我正在编写一个应用程序,如果用户不进行任何活动(点按/按键),我想捕获一个事件。
更好的上下文 - 就像会话超时一样。
基本解决方案 - 我可以覆盖按键/敲击事件并放置一个连续运行的计时器作为线程或服务。在我看来,这在资源方面是一个更重的解决方案。
对优雅解决方案的任何想法?
答案 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();