Question

J'ai 3 activités que mon utilisateur est continuellement mise en boucle à travers. Lorsque l'utilisateur est de retour à l'écran principal, je dois mettre fin à l'histoire précédente si l'utilisateur ne peut pas frapper le bouton retour et finir à l'écran # 2, ce serait une bonne façon de faire quelque chose comme ça? BTW - J'utilise 1.6 (niveau de l'API 4)

Je le répète - dire que je ne sais pas ou prédis le chemin qui me mène à la vue originale. Mais une fois que je charge, je veux effacer l'historique qui a conduit l'utilisateur à ce point de vue. Dans 2.0, il est possible avec l'activité # écrasement onBackPressed mais je besoin de quelque chose comme ça dans 1,6

Était-ce utile?

La solution

Ok, je suppose que vous avez 3 activités, A, B et C. A est l'écran principal et l'utilisateur en boucle à travers ces 3 pages. Mais lorsque l'utilisateur A saisir, l'événement onBackPresed doit être effectué en sortie. Est-ce que je fais clairement?

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

Si vous voulez intercepter l'événement clé en arrière, vous n'avez pas besoin de passer outre onBackPressed (). Nous utilisons toujours onKeyDown avant que cette méthode est disponible.

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

    }
    return super.onKeyDown(keyCode, event);
}

Autres conseils

Comme je sais Si vous voulez effacer l'historique de l'activité que vous pouvez faire de deux façons

(1). Dans le fichier manifest.xml

Vous pouvez également mettre en œuvre ce à partir de votre fichier AndroidManifest.xml, ajoutant simplement android: Nohistory = "true" attribut 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). Dans le code Java

vous pouvez ajouter cette option lorsque vous commencez une 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 cherchez Bouton Retour empalement exemple ci-dessous peut vous aider

Si vous cherchez niveau 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);    
}

Je espère que ça vous aidera !!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top