//用户无操作计时的时间,单位毫秒,默认10分钟 private long lockScreenTime = 10 * 60 * 1000; private Handler mLockScreenHandler = new Handler();
/** * 在启动的第一个页面需要调用一次,作为初始化启动 */ public void resetTime() { mLockScreenHandler.postDelayed(excuteRunnable, lockScreenTime); } private Runnable excuteRunnable = new Runnable() { @Override public void run() { startActivity(new Intent(BaseActivity.this, LockScreenActivity.class)); } }; @Override public boolean dispatchKeyEvent(KeyEvent event) { switch (event.getAction()) { case KeyEvent.ACTION_DOWN: mLockScreenHandler.removeCallbacks(excuteRunnable); break; case KeyEvent.ACTION_UP: { resetTime(); break; } } return super.dispatchKeyEvent(event); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mLockScreenHandler.removeCallbacks(excuteRunnable); break; case MotionEvent.ACTION_UP: resetTime(); break; } return super.onTouchEvent(event); }