Override onAbackpress ()
-
21-12-2019 - |
Domanda
Questa è la struttura della mia applicazione:
Attività A è un ListViewActivity
con un pulsante per avviare l'attività B.
Nell'attività B dopo aver completato un modulo è presente un pulsante per avviare l'attività C.
L'attività C Salva l'impostazione e crea un nuovo record da mostrare in un'attività.Il pulsante salva nell'attività C lancia l'attività A.
Se l'utente segue questa procedura più di una volta quando premere il pulsante Indietro dall'attività Attività ritorno sulla B (senza passare attraverso il C perché quando ho iniziato, impostato FLAG_ACTIVITY_NO_HISTORY
) e la seconda volta premere indietroA di nuovo, e questo ripete il numero di tempo pari al numero di record creati.
Chiudi L'app con il pulsante Indietro è diventata un lungo processo.
Vorrei che il onBackPressed
dall'attività è sempre chiudere sempre l'app.
L'inglese non è la mia lingua, spero di essere chiaro.
Soluzione
Avvia sempre la tua attività a un simile
Intent intent = new Intent(current_activity_context, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
. Altri suggerimenti
Il metodo Finish () lo farà. Qualcosa come questo
Intent intent = new Intent(getApplicationContext(),
Activity B.class);
Activity A.this.startActivity(intent);
finish();
. You must override the OnBackPressed method
@Override
public void OnBackPressed(){
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
super.onBackPressed();//Optional
}
Hope it helps.
try this
@Override
public void onBackPressed() {
// Do Here what ever you want do on back press;
}