2010-10-21 15 views
5

voglio bloccare hardware pulsante Indietro in Android, al fine di evitare di tornare alle altre attività .. Grazie in anticipo ...Blocco pulsante Indietro in Android

+0

Non farlo .. – Falmarri

+0

Non c'è motivo di votare, perché la domanda è legittima: puoi impedire il pulsante Indietro per i dialoghi, quindi almeno quando si utilizza un'attività in uno stile di dialogo, può essere opportuno bloccare il pulsante Indietro. – sven

risposta

17

Ecco il codice che consente di gestire correttamente la chiave di nuovo in un'attività su tutte le versioni della piattaforma:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ( Integer.valueOf(android.os.Build.VERSION.SDK) < 7 //Instead use android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR 
      && keyCode == KeyEvent.KEYCODE_BACK 
      && event.getRepeatCount() == 0) { 
     // Take care of calling this method on earlier versions of 
     // the platform where it doesn't exist. 
     onBackPressed(); 
    } 

    return super.onKeyDown(keyCode, event); 
} 

@Override 
public void onBackPressed() { 
    // This will be called either automatically for you on 2.0 
    // or later, or by the code above on earlier versions of the 
    // platform. 
    return; 
} 

fonti: http: //android-developers.blogspot.com/2009/12 /back-and-other-hard-keys-three-stories.html

+0

Eccellente da sapere, soprattutto a causa dello scomodo backstack Frgagment di Android che non ti consente di cancellare gli oggetti più vecchi mantenendo il più recente. –

+0

@ 100rabh, ho usato il tuo codice precedente che ha funzionato perfettamente all'interno del mio GameView. Tuttavia, all'interno della vista ho finestre popup di dialogo. Come posso implementare la disattivazione precedente del pulsante Indietro per i popup? Grazie –

+0

@LandLPartners Per le finestre di dialogo è necessario gestire i tasti utilizzando [DialogInterface.OnKeyListener] (http://developer.android.com/reference/android/content/DialogInterface.OnKeyListener.html). Basta prendere il tasto indietro come sopra e il gioco è fatto! – 100rabh

4

Se l' 'altra attività' è tuo, puoi impostarlo in modo che non compaia nell'elenco cronologico.

Altrimenti, ricorda che il telefono appartiene all'utente e non a te, e smetti di provare a dire loro cosa possono e non possono fare con il tuo dispositivo.

+0

+1 Interrompi il pasticcio con il comportamento previsto. – benvd

+2

Penso che in alcuni casi questo sia accettabile. Ne ho trovato uno in cui ho una serie di preferenze che salvano automaticamente quando l'utente torna indietro, tuttavia nel caso in cui si sono dimenticati di compilare un campo, li avverto per confermare se vogliono o meno tornare indietro perdendo le modifiche. .. – Redth

Problemi correlati