2017-03-22 4 views
-2

Il existe une bibliothèque Android. flux de travail comme ça:Bouton Précédent de la bibliothèque Android

A1-> A2-A3-> Bibliothèque activité-> A3

Je dois cacher l'activité des bibliothèques lorsque l'utilisateur clique physique back button. En outre, l'activité de la bibliothèque a enregistré certaines données, de sorte que je ne peux pas destroy ou finish() l'activité de bibliothèque.

A1-> A2-> A3-> lib ---> retour à la précédente A3

Si l'utilisateur presse back button, je veux sauter l'activité library et sauter à A2 de A3 mais pas détruire l'activité de la bibliothèque car l'activité de la bibliothèque a enregistré les données dont j'ai besoin pour l'utiliser à nouveau.

+0

s'il vous plaît poster votre code. –

+0

Essayez d'utiliser la pile –

+0

Quel type de données l'activité de votre bibliothèque contient-elle? Pouvez-vous utiliser une manière différente d'enregistrer vos données au lieu de conserver toute une activité en mémoire? et il y a aussi une forte probabilité que le système d'exploitation android tue votre activité de bibliothèque quand elle est en arrière-plan. –

Répondre

0

Il suffit de rendre l'activité de bibliothèque android:noHistory="true" dans le manifeste. Et sauvegardez les données dont vous avez besoin ailleurs.

2

Vous devez remplacer onBackPressed méthode dans votre activité comme celle-ci:

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
//change your View from A3 to A2 
} 

Vous pouvez enregistrer les données en utilisant SharedPreferences.

+0

parce que c'est la bibliothèque, je ne peux pas ajouter le code en A3. – haha1994713

+0

Merci. il est possible de sauvegarder l'image en utilisant SharedPreferences – haha1994713

+0

Je ne vais pas vous recommander de stocker l'image dans les préférences de partage. Et vous devriez stocker cette image sur SDCard. Et puis stocker le chemin de l'image (à partir de sdcard) dans les préférences de partage. –

2

Si l'activité actuellement visible provient de la bibliothèque et que vous ne pouvez pas en modifier le code, il n'est pas possible de gérer la contre-pression de l'activité. Toutefois, si vous appelez cette activité de bibliothèque avec un Intent de votre activité, ce que vous pouvez faire est,
Écrivez une classe extends LibraryActivity et appelez cette activité à la place. Là, vous pouvez remplacer la méthode onBackPressed().