Итак, если у вас есть одно действие в вашем приложении, вы создаете Timer и TimerTask для достижения этой цели. И может отслеживать события касания и нажатия клавиш. Так что в своей деятельности вы можете делать что-то вроде этого.
Timer longTimer;
synchronized void setupLongTimeout(long timeout) {
if(longTimer != null) {
longTimer.cancel();
longTimer = null;
}
if(longTimer == null) {
Timer longTimer = new Timer();
longTimer.schedule(new TimerTask() {
public void run() {
longTimer.cancel();
longTimer = null;
//do your stuff, i.e. finishing activity etc.
}
}, 300000 /*delay in milliseconds i.e. 5 min = 300000 ms or use timeout argument*/);
}
}
@override
public boolean onTouchEvent(MotionEvent me) {
setupLongTimeout(300000);
return super.onTouchEvent(me);
}
@override
public boolean onKeyUp(int keyCode, KeyEvent ke) {
setupLongTimeout(300000);
return super.onKeyUp(keyCode, ke);
}
Если вы обрабатываете какие-либо события нажатия клавиши / касания для любого из представлений, вам необходимо вернуть значение false, чтобы событие пришло в действие.