2012-08-25 14 views
5

Quando utilizzo questo metodo, torno alla pagina di accesso, ma posso ancora fare clic sul pulsante di ritorno e mi riporta all'attività precedente. perché non chiude altre attività?Completa tutte le attività tranne uno

public void restartApplication() { 
     Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(i); 
    } 

C'è un modo per completare tutte le attività tranne l'attività di accesso? o riavviare l'intera app?

risposta

0

Provare a inserire finish(); dopo startActivity(i);.

3

Penso che a causa del gestore pacchetti, l'attività inizi su un nuovo stack cronologico.

Provare a utilizzare il nome dell'attività anziché ottenere dal gestore pacchetti. Es.

Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
0

Provare ad usare questa intent.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); al posto di intent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP);

Intent intent = new Intent(getApplicationContext(), 
     yourActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

startActivity(intent); 
Problemi correlati