Bonjour,
Tout est dis dans le titre.
J'ai un numéro de facture que j'incrémente mais dès que la rotation de l'écrant se fait il revient 0
Que faire ?
Merci pour vos réponse
Cordialement
Bonjour,
Tout est dis dans le titre.
J'ai un numéro de facture que j'incrémente mais dès que la rotation de l'écrant se fait il revient 0
Que faire ?
Merci pour vos réponse
Cordialement
??? hu...
Normalement la rotation de l'écran ne va pas tripatouiller la mémoire...
A moins que ce ne soit une valeur membre de l'activité (puisque par défaut l'activité est détruite / recrée à la rotation de l'écran) et qu'elle ne soit pas sauvegardée correctement (onSaveInstanceState) ou récupérée correctement dans le onCreate....
Qu'en est-il quand on appuie sur "home" et qu'on revient dans l'application (appui long sur home, appui sur le thumbnail des applications récentes) ?
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
Et surtout
Tu as bien ca ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part android:configChanges="orientation|screenSize"
alors.. Tout d'abord merci pour vos réponses.
Ma variable effectivement est une variable d'activité.. Donc lors de la rotation de l'écran, l'activité va se recharger du coup la valeur reviens à 0.
Comment je peux faire en sorte que ma variable de s'écrase jamais ?
Il faut la faire persister (typiquement SharedPreference dans on cas) ou bien gérer spécifiquement le cas de la rotation avec onSaveInstanceState/onRestoreInstanceState
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS
Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android
Le plus simple est vraiment d'utiliser:
onSaveInstanceState/onRestoreInstanceState
ce qui, au passage, permettra de gérer l'ensemble des cas ou l'activité est détruite (il n'y a pas que l'orientation de l'écran) par le système.
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
Et surtout
ok pour la methode onSaveInstanceState/onRestoreInstanceState. Pourquoi ?
Parce que j'ai qu'une variable a garder en mémoire.
Cependant, comment je peux faire ? J'ai pas trouver de tuto satisfaisants et je ne comprends pas le principe
Bonjour,
Mon problème est résolue.
Après réflexion je l'ai fais avec des share preferences.
je vous remercie pour votre aide !
Le problème des SharedPreferences, c'est qu'elles survivent à la mort de l'application, ce qui n'est pas voulu par exemple pour une authentication, ou un état temporaire de l'application.
Pourquoi pas utiliser onSaveInstanceState() / onRestoreInstanceState() ?
Parceque:
bundle.putInt("xxxx",value);
bundle.getInt("xxxx");
C'est encore plus simple que les SharedPreferences (ou il faut ouvrir un Editor, commiter, etc...).
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
Et surtout
Bonjour,
Autre possibilité,
Sauvegardé ta variable dans l'Application, ou un Service.
Donc pour résumer
OnSaveInstance : sauveagarde dans l'activié en cours, doit passer la variable par le bundle si tu changes d'activité, attention pour les fragments c'est un peu plus chiadé.
OnShardePreference : partagé et sauvegardé à l'ensemble de l'application, les données reste même si l'application se termine
Application : sauvegarde la variable dans l'Application, partagé a l'ensemble de l'application mais se perds lorsque celle ci se termine, (A ne pas surcharger cela prends de la place).
Service : Si un Service tourne en tache de fond, on peut l'utiliser pour sauvegarder des variables seules les activité se liant a se service auront accès à celles ci. C'est un peu crade, mais si les variables ont un rapport avec le service c'est utile.
SDCard : Attention tout le monde peut y avoir accès
DB : pour les grosses quantité de données .
Serveur : sauvegarde les données sur une place externe.
Responsable Android de Developpez.com (Twitter et Facebook)
Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager