Android: une histoire claire lors de la navigation entre les activités

J'ai 3 activités sur lesquelles mon utilisateur se déplace continuellement. Lorsque l'utilisateur est de retour sur l'écran principal, je dois terminer l'historique précédent afin que l'utilisateur ne puisse pas frapper le bouton et finir sur l'écran n ° 2, quelle serait une bonne façon de faire quelque chose comme ça? BTW – J'utilise 1.6 (niveau API 4)

Pour répéter – dire que je ne connais pas ou ne prédis pas le chemin qui m'amène à la vue originale. Mais une fois que je le charge, je veux effacer l'historique qui a conduit les utilisateurs à cette vue. En 2.0, il est possible d'écraser Activity # onBackPressed mais j'ai besoin de quelque chose comme ça en 1.6

  • Comment modifier les valeurs xml de la ressource de chaîne dans Android par programme?
  • Étant donné un nom de playlist de musique Android, comment peut-on trouver les chansons dans la playlist?
  • Démarrage d'une image Frame-By-Frame Animation
  • Comment trouver tous les fichiers avec une certaine extension sur Android?
  • Gradle build ne fonctionne pas: l'exécution a échoué pour la tâche ': MyApp: compileDebug'
  • Android: fonction MediaPlayer setVolume
  • SwipeRefreshLayout ne peut héberger qu'un seul enfant direct
  • Pourquoi la fonction ne reçoit-elle pas les données de php dans Android?
  • Erreur de gonflement de la conception de support Android de classe
  • Crashlytics déconseillant logException () quel est le remplacement?
  • Android facebook SDK en JAR
  • SetMaxDate () ne fonctionne pas parfaitement sur Lollipop 5.0.1 android et a besoin d'une solution appropriée
  • 2 Solutions collect form web for “Android: une histoire claire lors de la navigation entre les activités”

    Ok, je suppose que vous avez 3 activités, A, B et C. A est l'écran principal et l'utilisateur traversera ces 3 pages. Mais lorsque l'utilisateur entre dans A, l'événement onBackPresed doit être exécuté comme sortie. Est-ce que je le précise?

    Dans une telle situation, lorsque vous essayez de commencer A de B ou C, vous pouvez ajouter Intent.FLAG_ACTIVITY_CLEAR_TOP à l'intention, puis la pile d'historique sera effacée et il n'y aura que A dans votre pile.

    Si vous souhaitez intercepter l'événement de la clé de retour, vous n'avez pas besoin de remplacer onBackPressed (). Nous utilisons toujours onKeyDown avant que cette méthode soit disponible.

    @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { } return super.onKeyDown(keyCode, event); } 

    Comme je le sais Si vous voulez un historique clair de l'activité, vous pouvez le faire de deux façons

    (1). Dans le fichier manifest.xml

    Vous pouvez également l'implémenter à partir de votre fichier AndroidManifest.xml, en ajoutant simplement Android: noHistory = attribut "vrai" dans ceux que vous voulez

    Exemple

     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.rdc.activity" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="xx" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".PickGalleryImageActivity" android:label="@string/app_name" android:noHistory="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

    (2). En code Java

    Vous pouvez ajouter ce drapeau lorsque vous démarrez l'activité Intent.FLAG_ACTIVITY_NO_HISTORY

    Exemple

     Intent intent = new Intent(this, SomeOtherClass.class); // do not keep this intent in history intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(intent); 

    Et l'autre est si vous êtes à la recherche d'un empalage Back Button ci-dessous, l'exemple peut vous aider

    Si vous recherchez un niveau d'api Android jusqu'à 1.6 .

     @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { //todo here return true; } return super.onKeyDown(keyCode, event); } 

    J'espère que ça vous aidera !!

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.