Wie man unterscheidet zwischen lang - - Taste drücken und regelmäßige Taste drücken?

Ich versuche zu überschreiben, die Funktionalität des zurück-Taste drücken. Drückt der Benutzer es einmal, ich will es wieder zum vorherigen Bildschirm. Allerdings, wenn die zurück-Taste lange gedrückt (für, sagen wir, zwei Sekunden oder mehr), möchte ich die Anwendung zu beenden.

Inzwischen habe ich überschrieben, diese beiden Methoden in meine Tätigkeit:

@Override
public boolean onKeyDown( int keyCode, KeyEvent event){
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        //manage short keypress
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

@Override
public boolean onKeyLongPress( int keyCode, KeyEvent event){
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        //manage long keypress (different code than short one)
        return true;
    }
    return super.onKeyLongPress(keyCode, event);
}

Aber die onKeyLongPress Rückruf wird nicht aufgerufen, denn die Veranstaltung ist immer erhalten, indem die onKeyDown Methode.

Gibt es eine Möglichkeit, dass beide Methoden arbeiten? Oder hat es alles getan, was in der onKeyDown und die Anzahl der Wiederholungen/Millisekunden zu detektieren?

InformationsquelleAutor Mister Smith | 2011-11-22
Schreibe einen Kommentar