De l'activité.finishAffinity() vs Intention.FLAG_ACTIVITY_NEW_TASK | Intention.FLAG_ACTIVITY_CLEAR_TASK

Dans Android, si vous souhaitez effacer votre Activity de la pile et le lancement d'un nouveau Activity (par exemple, de vous déconnecter de l'application et de lancer un journal en Activity), il semble y avoir deux approches.

Sont les avantages de l'un sur l'autre si votre cible API de niveau est au-dessus de 16?

1) Finition Affinité

Appel finishAffinity() à partir d'une Activité.
De l'activité.finishAffinity

2) L'Intention De Drapeaux

Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();

La finishAffinity() approche est bien adaptée pour >= API 16.

La Intent drapeaux approche est bien adaptée pour >= API 11.

Pour être clair, pour les fins de la compensation de l'actuel Activity de la pile, les deux méthodes fonctionnent tout aussi bien. Ma question est y a t-il des problèmes avec soit que les gens ont vécu et, par conséquent, est-il une raison de choisir l'un plutôt que l'autre?

OriginalL'auteur Craig Russell | 2015-11-03