Android detecta la inactividad del usuario después de presionar la tecla

En mi reproductor de medios he añadido una vista que se muestra si se pulsa la tecla de menú, quiero que se oculte después de algún tiempo, es decir, el usuario no quiere ver la vista, La vista es horizontal y quiero ocultar después de algunos Segundos que el usuario no presiona la tecla derecha o izquierda.

He puesto mi lógica aquí, pero no funcionó: "Similar es mi punto de vista para ser mostrado"

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { super.onKeyDown(keyCode, event); lastUsed = System.currentTimeMillis(); case KeyEvent.KEYCODE_MENU: similar.setVisibility(View.VISIBLE); similar.bringToFront(); similar.requestFocus(); similar.bringToFront(); nowHide() } public void nowHide(){ new Thread(new Runnable() { public void run() { while(true){ try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } if(getLastInteractionTime()+5000 >= System.currentTimeMillis()) { Log.d("MOVIE PLAY ACTIVITY:SADIP", "check time success"); runOnUiThread(new Runnable() { public void run() { similar.setVisibility(View.GONE); } }); } } } }).start(); } public long getLastInteractionTime() { return lastUsed; } public long setLastInteractionTime(int lastInteraction) { lastUsed = lastInteraction; return lastUsed; } 

El código nunca llegó a

 if(getLastInteractionTime()+5000 >= System.currentTimeMillis()) 

Y también no tuve la idea de detener este hilo

¿Cómo puedo hacer esto? Cualquier otro método sería más apreciado Gracias de antemano.

Prueba esto. Se notificará con un brindis en el usuario inactivo después de 5 segundos. El método onUserInteraction es la parte principal de este código.

 Handler handler; Runnable r; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handler = new Handler(); r = new Runnable() { @Override public void run() { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, "user inactive", Toast.LENGTH_SHORT).show(); } }; startHandler(); } @Override public void onUserInteraction() { // TODO Auto-generated method stub super.onUserInteraction(); stopHandler();//stop first and then start startHandler(); } public void stopHandler() { handler.removeCallbacks(r); } public void startHandler() { handler.postDelayed(r, 5000); } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.