2012-02-06 14 views
6

Ho LoginActivity che controlla SharedPreferences per i dettagli di accesso, quindi reindirizza a HomeActivity e ad altre attività successivamente. Ho messo la voce di menu Esci in ciascuna di queste attività e ho utilizzato questo codice sul pulsante di disconnessione.Nascondi attività di login

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

Come nascondere l'attività di accesso, in modo che quando l'utente preme il pulsante indietro dalla schermata iniziale, chiude l'app.

Come quando apro l'app mostra la schermata Home e quando premo normalmente il pulsante indietro dovrebbe chiudere l'app. Ma nel mio caso mi porta alla schermata di login, che è la prima schermata che controlla le credenziali dell'utente.

Non riesco a terminare l'attività di accesso, altrimenti quella soluzione non funziona.

Sono una novità di Android. Si prega di suggerire qualcosa per risolvere questo problema.

+3

utilizza android: noHistory = "true" nel manifest per l'attività di accesso. –

+0

L'ho provato, ma rimuove l'attività dallo stack. – SkyWalker

risposta

5

si dovrebbe provare questo sulla funzione chiave schiena del Attività di casa:

onBackpress(){ 
Intent intent = new Intent(mContext, LoginActivity.class); 
intent.putExtra("FLAG", 0); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(intent); 
} 

e sulla vostra LoginActivity basta fare:

onNewIntent(Intent intent){ 
    int i = intent.getIntExtra("FLAG", 0); 

    if(i == 0) 
     finish(); 

} 

ricordano launchMode per l'attività in menifest dovrebbe essere singleTop.

+0

Mostra errore "Il metodo putIntExtra (String, int) non è definito per il tipo Intent" su putIntExtra. e "getData non può essere risolto o non è un campo" su getData. – SkyWalker

+1

Ho modificato la mia risposta, –

+0

grazie amico! funziona perfettamente Puoi spiegarmi brevemente cosa abbiamo fatto? – SkyWalker

4

Ignorare il metodo Activity.onBackPressed() e quindi inviare l'applicazione home tramite un intent.

Dal SDK:

un intento con le seguenti categorie vi permetterà di andare a casa.

ACTION_MAIN con categoria CATEGORY_HOME - Avvia la schermata principale.

+0

I Override onBackPremere nell'attività Home. ma, quale codice scrivo all'interno della fuction per chiudere l'app. – SkyWalker

+0

Non uccidi la tua app, ActivityManager lo farà per te, basta inviare una casa Intento. – JoxTraex

+0

La mia app richiede username e password per la prima volta e successivamente apre direttamente la home page. Ma, quando premo il pulsante, ci vuole per accedere all'attività. Quindi, al pulsante Indietro dall'attività di casa, voglio chiudere l'app (non forzatamente uccidere l'app). – SkyWalker

1

È possibile ignorare l'evento di pressione tasto tasto indietro e chiuderlo quando premuto.