Fake KeyEvent no funciona * exactamente * como el botón "real". ¿Por qué?
Estoy tratando de invocar a mi actividad principal onKeyDown () con KEYCODE_BACK, para que se comporte como si presioné el botón 'volver' yo mismo. Hago eso usando el código siguiente:
KeyEvent goBackDown = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK,0,0); goBackDown.dispatch(activity); SystemClock.sleep(50); // as if human pressed the key KeyEvent goBackUp = new KeyEvent(0,0,KeyEvent.ACTION_UP,KeyEvent.KEYCODE_BACK,0,0); goBackUp.dispatch(activity);
Mi actividad es onKeyDown () actualmente sólo llama:
- OnSaveInstanceState () y onPause () secuencia de llamadas
- ciclo de vida de la actividad Android
- OnCreate () llamado mientras se detiene la actividad (pero no se destruye). Sólo después de la instalación
- ¿Cómo detener el servicio cuando la aplicación se detiene o se destruye pero no cuando cambia a una nueva actividad?
- El video de TextureView que se reproduce se vuelve negro después de onPause
return super.onKeyDown(keyCode, event);
Sin embargo, a diferencia del botón Back real , cuando se llama al código "falso", la actividad se niega a ser invisible.
¿Por qué?
- ¿Por qué "onPause" no se llama en la siguiente situación?
- OnResume Cámara Reinit Negro Pantalla
- onPause () problema del método en kitkat 4.4
- Actividad de Broadcastreceiver y Paused
- MyLocationOverlay disableMyLocation () no parece funcionar
- "Estado persistente" vs. "estado actual"
- ViewPager con fragmentos - onPause (), onResume ()?
- ¿Qué es la actividad inactiva y por qué se llama después del inicio de la aplicación?
utilizar
dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK));
El método Aleadam no funciona en mi Android 4.1.2. Así que escribo solución:
public void dispachBackKey() { dispatchKeyEvent(new KeyEvent (KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)); dispatchKeyEvent(new KeyEvent (KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK)); }
Trate de usar esto
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { //.... } return true; }
- Cómo guardar de nuevo en un archivo en la carpeta de activos
- Youtube Play / pausa Animated Vector Drawable en android