Sto cercando di ignorare la funzionalità della pressione del tasto indietro. Quando l'utente lo preme una volta, voglio che ritorni alla schermata precedente. Tuttavia, quando si preme a lungo il tasto Indietro (per, diciamo, due secondi o più), voglio uscire dall'applicazione.Come distinguere tra la pressione lunga dei tasti e la pressione normale dei tasti?
Ormai, ho sovrascritto questi due metodi nella mia attività:
@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);
}
Ma la onKeyLongPress
callback viene mai chiamato, perché l'evento è sempre ricevuto dal metodo onKeyDown
.
Esiste un modo per far funzionare entrambi i metodi? O deve essere fatto tutto nel onKeyDown
e utilizzare il numero di ripetizioni/millisecondi per rilevarlo?
fieno questo link [doc KeyEvent] (http://developer.android.com/reference/android/view/KeyEvent.Callback.html#onKeyDown%28int,%20android. view.KeyEvent% 29) –