IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Objet unique accessible via toutes les activités


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2012
    Messages : 11
    Par défaut Objet unique accessible via toutes les activités
    Bonjour à tous,

    Avant de vous poser mon problème, voici le contexte. Je développe une application permettant de gérer mes comptes. Je suis nouveau en développement android mais j'ai des connaissances théoriques en développement orienté objet.

    Voici ma question. J'aimerai que mon application soit composé d'activités partageant tous un objet que l'on appellera "comptes". Je m'explique:
    Au démarrage, l'application chargera via une base de donnée (SQLlite ou sur un serveur web) et il les ordonnera convenablement ces informations dans un objet de classe "comptes". Ainsi je voudrai que chaque activité puisse instancier et utiliser l'objet comptes comme si il était "static".

    Est ce la bonne méthode ?
    Ou dois je pour chaque activités me connecter afin de récupérer et/ou modifier ma base de donnée ?

    Merci beaucoup et désolé si je n'ai pas été clair.

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Oui, a un moment, pour avoir des données partagées entre plusieurs activité, il faut avoir un objet commun... Le plus simple est de passer par un objet statique, le plus propre par l'objet "Application" (qui peut être surchargé).

    A n'importe quel moment, si on a un "Context", on peut récupérer l'objet Application. Et donc, tout membre de cet objet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    class MyApplication extends Application
    {
         Comptes   comptes;
     
         public void onCreate(...)
         {
               super.onCreate(...)
               this.comptes = ...;
         }
     
         public Comptes getComptes()
         {
             return this.comptes;
         }
    }
    Pour le chargement (SQLite ou distant) c'est un peu plus complexe. On n'est pas sur un ordinateur fixe qui peut faire un peu de temporisation avant de lancer l'application, il est donc interdit de faire des traitement longs (lecture sur internet par exemple) pendant le démarrage de l'application.

    La solution est de passer des tâches asynchrones de récupération des données, ou aussi appelés "Loaders".
    Donc une Activité demandera à l'application d'appeler une fonction (l'interface de callback) quand celle-ci aura obtenu les comptes. Ce qui peut arriver immédiatement si les comptes ont déjà été chargés, ou un peu plus tard si le chargement est toujours en cours.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Pour ajouter une petite précision au conseil de nicroman, si tu utilise la classe Application, il ne faut pas oublier de la référencer dans ton AndroidManifest.xml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <application android:name=".MyApplication">
        <activity ... />
    </application>

Discussions similaires

  1. Réponses: 11
    Dernier message: 05/04/2010, 22h10
  2. Réponses: 8
    Dernier message: 05/10/2009, 15h47
  3. variable accessible depuis toutes les sessions
    Par ravaza dans le forum Langage
    Réponses: 1
    Dernier message: 21/04/2008, 20h30
  4. Réponses: 3
    Dernier message: 12/05/2006, 12h34
  5. [C#] Variables accessibles à toutes les méthodes
    Par defacta dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/05/2004, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo