Gibt es einen Standard -Back -Taste -Hörer (auf Geräte) in Android?
-
25-09-2019 - |
Frage
Ich habe zwei Aktivitäten A und B. Wenn ich auf die Schaltfläche in A klicke, die B. angezeigt wird. Wenn ich auf die Schaltfläche in B klicke, hat ich nach der Methode von overdipendingTransition die Über OverridependingTransition -Methode festgelegt. Es funktioniert richtig. Für den Fall, dass die aktuelle Aktivität B. zu dieser Zeit ist, klicke ich auf die Standardschaltfläche zurück im Gerät. Es zeigt den Übergang von rechts nach links, um die Aktivität A zu zeigen.
Wie kann ich diese Standard -Rückschlüssel auf dem Gerät anhören?
BEARBEITEN:
Log.v(TAG, "back pressed");
finish();
overridePendingTransition(R.anim.slide_top_to_bottom, R.anim.hold);
Lösung
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}
return super.onKeyDown(keyCode, event);
}
Der folgende Link ist eine detaillierte Erklärung zum Umgang mit den wichtigsten Ereignissen, die von den Android -Entwicklern selbst geschrieben werden:
Andere Tipps
Für Android 2.0 und später gibt es in der Aktivitätsklasse eine spezifische Methode:
@Override
public void onBackPressed() {
super.onBackPressed();
// Do extra stuff here
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
//Do stuff
}
return super.onKeyDown(keyCode, event);
}
Weitere Informationen zu Back -Schlüssel -Sachen finden Sie hier: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-the-stories.html
Ich verwende diesen Code für eine Aktivität mit einem Media Player. Ich musste die Wiedergabe stoppen, wenn der Benutzer die Rückknaste drückte, aber dennoch in die vorherige Aktivität zurückkehren konnte.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
try{
mp.stop(); //this line stops the player
return super.onKeyDown(keyCode, event);//this line does the rest
}
catch(IllegalStateException e){
e.printStackTrace();
}
return true;
}
return super.onKeyDown(keyCode, event); //handles other keys
}