Anular el botón de retroceso en android
Tengo que jugar un archivo mp3 y cuando chasque encendido detrás el botón en el dispositivo entonces automáticamente la canción debe parar. Así que he intentado por debajo del método dado. Pero no está funcionando.
public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.audioplaying); play=(ImageView)findViewById(R.id.play); stop=(ImageView)findViewById(R.id.stop); songid=(TextView)findViewById(R.id.songid); status=(TextView)findViewById(R.id.status); String s=Songs.song; status.setText("Please Wait....!"); mp=new MediaPlayer(); try{ mp.setDataSource(s); mp.prepare(); } catch(Exception ex){ Log.e("Exception",ex.getMessage()); } Log.e("Status","Song is going to Start"); mp.start(); start=true; Log.e("Status","Song was Started"); status.setText("Playing...!"); songid.setText(s); play.setOnClickListener(this); stop.setOnClickListener(this); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5 && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { Log.d("CDA", "onKeyDown Called"); onBackPressed(); } return super.onKeyDown(keyCode, event); } public void onBackPressed() { Log.d("CDA", "onBackPressed Called"); audioStreamer.stop(); audioStreamer.getMediaPlayer().stop(); if(start) { mp.stop(); start=false; } else{ Intent setIntent = new Intent(AudioPlay1.this,Songs.class); startActivity(setIntent); finish(); } Intent setIntent = new Intent(AudioPlay1.this,Songs.class); startActivity(setIntent); finish(); return; } @Override public void onClick(View v) { if(v.equals(play)){ try{ mp.prepare(); } catch(Exception ex){Log.e("Exception in onclick",ex.toString());} mp.start(); start=true; Log.e("Status","Song was Started again"); status.setText("Playing...!"); } if(v.equals(stop)){ mp.stop(); start=false; Log.e("Status","Song was stopped"); status.setText("Song was Stopped"); } }
La canción no se detiene y la página anterior no puede mostrarse. Por favor, dime la solución.
- OnPause no se llama cuando se pulsa el botón?
- Android - onBackPressed () no funciona
- cómo mostrar admob intersticial en la salida de la aplicación
- ¿Comprobar si la tecla de la parte posterior fue presionada en androide?
- Manejo del hardware de Android Botón Atrás
Atentamente.
Gracias de antemano.
- Cómo desactivar el botón de nuevo en android
- Android Back Button para una actividad específica
- Haciendo clic dos veces en el botón Atrás para salir de una actividad
- Ayuda para evitar que el botón Volver cierre la subactividad
- OnKeyDown () o onBackPressed ()
- Android cómo poner un cuadro de diálogo después de presionar un botón de nuevo
No sé si este es su problema, pero cuando usted llama onBackPressed();
En su onkeydown, usted no está regresando, por lo que el parent.onkeydown
también se llama, y la parte posterior 'normal' es simplemente ser 'ejecutado'.
Insertar una declaración de devolución allí por lo que no va a hacer la función normal de la clase padre.
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5 && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { Log.d("CDA", "onKeyDown Called"); onBackPressed(); return true; } return super.onKeyDown(keyCode, event); }
Para manejar todo uso clave
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { //Back key pressed //Things to Do return true; } return super.onKeyDown(keyCode, event); }