Umgang mit Android-Hardware Zurück-Taste

8

Ich habe ein onKeyDown -Ereignis, das nur für die Handhabung der Up- und Down-Hardware-Tasten in meiner App benötigt wird. Für diese gibt es wahr, wie sie behandelt werden. Für alles andere gibt es false zurück, was ich verstehe, bedeutet, dass das Betriebssystem mit ihnen umgehen sollte. Wenn ich jedoch die Zurück-Taste drücke, wird mein onKeyDown aufgerufen und gibt false zurück, aber es gibt keinen anderen Effekt. Ich möchte / würde erwarten, dass das Betriebssystem die aktuelle Activity beendet und die vorherige wieder aufnimmt.

Ist das richtiges Verhalten, oder gibt es etwas Amis?

Aktualisierung:

Prost Leute, meine onKeyDown-Routine sieht so aus, jetzt habe ich CommonsWare's Rat befolgt:

%Vor%

Meine Klasse sieht so aus:

%Vor%

Ich muss zugeben, dass ich nicht wusste, warum die @override und die erste "Super" -Linie da waren, sie waren nur in all den Routinen, die ich betrachtete. Wenn der super.onKeyDown das onKeyDown für die Aktivität ausführt, dann will ich es wahrscheinlich nicht am Anfang, nur am Ende, wenn meine Routine es nicht behandelt, was ich denke, was ich hinzugefügt habe. Klingt das richtig, oder bin ich noch verwirrt?

-Frink

    
FrinkTheBrave 22.08.2010, 09:15
quelle

3 Antworten

6

Ich würde die Verkettung der Oberklasse empfehlen. Mit anderen Worten, anstatt:

%Vor%

tun:

%Vor%     
CommonsWare 22.08.2010, 10:23
quelle
4

Sie können die onBackPressed () -Methode überschreiben, sie wird aufgerufen, wenn die Aktivität den Benutzer durch Drücken der Zurück-Taste erkannt hat. In diesem Fall müssen Sie die onKeyDown-Methode nicht verwenden.

    
Karan 22.08.2010 12:27
quelle
1

Außerdem rufst du super.onKeyDown () zweimal auf: einmal am Anfang der Funktion und einmal am Ende. Sie sollten nur die eine am Ende brauchen.

    
joeo 22.08.2010 19:45
quelle

Tags und Links