J'écris une application qui ont deux "modes"; Un EM> em> em> strong> et un modifier em> strong> mode. L'application expose deux activités principales / lanceurs (disons, Maintenant, mon problème est que si vous démarrez l'application, par exemple. Mode d'affichage (chaîne d'activité Comment puis-je résoudre ce problème? em> strong> p>
J'ai essayé diverses combinaisons de Je voudrais supprimer toute la chaîne d'activités ( Android: nohistory code>, Android: ClearTaskonLaunch d'autres attributs dans androidmanifest.xml code> pour les activités concernées. Mais ils semblent seulement affecter l'activité même, pas la chaîne entière. P>
3 Réponses :
On dirait que vous devez utiliser le Par exemple - Vous définissez les activités dans votre fichier manifeste: P > inent.flag_activity_clear_top code> Drapeau de votre domicile, mais bien sûr, vous ne pouvez pas ajouter ces indicateurs dans le fichier AndroidManifest.xml. Peut-être devriez-vous avoir un point d'entrée unique qui lance ensuite l'activité correcte code> - vous pouvez utiliser un Activité-alias Pour qu'il ressemble à deux points d'entrée à l'utilisateur. ActivityInfo activityInfo = getPackageManager().getPackageInfo( this.getComponentName(), PackageManager.GET_ACTIVITIES|PackageManager.GET_META_DATA);
int launchTypeResource = activityInfo.metaData.getInt("launch_type");
String launchType = context.getString(launchTypeResource);
if(launchType == null) {
// handle error
throw new Exception();
}
Intent newIntent;
if(launchType.equals(context.getString(R.string.launch_view)) {
newIntent = createIntent(ViewActivity.class);
} else if(launchType.equals(context.getString(R.string.launch_edit)) {
newIntent = createIntent(EditActivity.class);
}
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(newIntent);
Salut @martin! Je me suis prononcé la liberté de modifier légèrement votre extrait de code sur la manière de récupérer les méta-données associées au Activity-alias-alias code>. Il s'est avéré qu'il n'est pas envoyé par l'intention d'appel code> code> mais lue plutôt de la structure de données code> ActivityInfo CODE>.
Très bonne réponse! Prendre le montant des efforts que vous avez mis et le fait que votre réponse était la première (correcte et travail-travail-ish, vient de vous accorder une marque verte :-)
@Martyn Pouvez-vous modifier votre réponse pour contenir la lecture correcte des données?
@Ovidiulatcu, j'ai maintenant recommandé mon correctif proposé. Malheureusement, je ne semble pas encore avoir le droit de modifier les questions / réponses des autres peuples, mais je ne peux donc pas faire beaucoup plus, mais j'attends l'examen de Martyn.
Toutes mes excuses - était en vacances! : D ont corrigé le code - merci de le pointer.
Veuillez utiliser la méthode suivante sur la touche Accueil:
Intent intent=new Intent(this, HomeClass.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);
Je suppose que cela serait effectivement le moyen le plus simple de résoudre mon problème. Je vais cependant utiliser une autre implémentation qui rend cette solution qui ne convient pas à mon application cette fois-ci. J'ai cependant appris quelque chose par votre réponse et pour cela, je vous remercie.
Vous pouvez envisager d'utiliser une seule activité Ensuite, implémentez le contenu de Combinez ceci avec code> pour chaque chaîne (ce serait seulement code> lors de la navigation d'avant en arrière. P>
Android: NoHistory Code> et vous devez obtenir l'effet souhaité - bien que cela nécessiterait une réécriture et que vous incluez le package de compatibilité dans votre projet si vous envisagez de cibler la version ciblée en nid d'abeille. < / p>
C'était en fait une utilisation très élégante des fragments et, étant donné que mon application est déjà construite par des fragments, cela ne serait même pas une énorme réécriture. Même si je pense que c'était la chose juste à faire pour accepter la réponse de @Martyn, je pense que c'est le choix architectural que je vais aller avec à la fin. Merci pour la bonne idée!
Vous devriez avoir des yeux sur ce Nisha113A5.Blogspot.com ?? revenons
Salut @himanshu! Oui, cette question aurait probablement mené une conclusion de travail. Merci pour le conseil!
Salut @android_Hungry! Cette solution fonctionnerait probablement. Je ne suis pas sûr, cependant, si je le choisi comme ma mise en œuvre principale. Pour moi, cela ressemble un peu comme "sombre quel artisanat" qui est lié pour ne pas travailler sur certains appareils. C'est une coupe courte, je n'ai pas le luxe de prendre.
@DBM: Oui, vous êtes juste, je viens de passer à travers ce post le même jour où je lisa votre question ..