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 :

Dois-je utiliser un Intent ou Broadcast Intent?


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
    Novembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 13
    Par défaut Dois-je utiliser un Intent ou Broadcast Intent?
    Bonjour a tous,

    Je suis nouveau sur le forum, et un apprenti développeur android. Je développe une petite application/jeu et je me retrouve avec un problème lors du passage d'informations entre 2 activités.

    J'ai une activité A qui lance une activité B, cependant je souhaite passer des données (variables de type int) de l'activité A dans une activité C qui n'est lancé ni par l'activité A, ni par l'activité C.

    J'ai donc procédé de différentes façon, tout d'abord en mettant un Extra dans l'intent de l'activité A (je ne pense pas que ce soit la bonne solution), puis, deuxièmement avec un broadcast intent dans l'activité A et un broadcast reciever dans mon activité C (celle qui doit recevoir les valeurs) sans oublier de déclarer un intent-filter dans le manifest.

    Etant donné que je fais beaucoup de faute puisque je débute, je ne sais pas qu'elle est la bonne solution.
    Si quelqu'un pourrait me donner des indications sur la methode a suivre et les principaux constructeurs à utiliser, je lui en serait reconnaissant.

    Je m'excuse si j'ai commis des fautes de vocabulaire en m'exprimant.

    Merci beaucoup!

    Guillaume

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 281
    Par défaut
    Pour le passage d'objet ou de paramètres de deux activités , la plupart du temps on utilise les Intent. A quel moment est appeler ton activité C. Pour plus de visibilité met nous du code

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 13
    Par défaut
    Bonsoir, et merci de ta réponse rapide.

    En fait mon activité C est une listview où chaque item a une image et lorsque je clique sur un bouton dans mon activité A, cette dernière devrait envoyer un nombre aléatoire à mon activité C. Chaque nombre correspond a un item et donc l'image sera modifié si le nombre aléatoire correspondant est généré lors du click.

    Quant à la position de mon activité, j'ai au départ une activité qui me propose d'aller vers l'activité A ou la C ( un bouton pour aller vers A et l'autre pour C).

  4. #4
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Citation Envoyé par guigui14077 Voir le message
    J'ai une activité A qui lance une activité B, cependant je souhaite passer des données (variables de type int) de l'activité A dans une activité C qui n'est lancé ni par l'activité A, ni par l'activité C.
    Dans ce cas il faut utiliser un mécanisme de variable globales (static). Tu peux aussi utiliser les SharedPreferences. Ah oui, tu peux ausi utiliser la classe android.app.Application pour faire cela proprement.

    Enjoy
    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

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 13
    Par défaut
    Houla, donc finalement pas d'intent ou de broadcast intent? Qu'entend tu par "un mécanisme de variables globale?" Je vais essayer avec SharedPreferences, je vous tiens au jus. Si d'autres hypothèses se manifestent je suis preneur .

    Merci Hephaistos.

  6. #6
    Membre confirmé Avatar de Rappunzell
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2007
    Messages : 93
    Par défaut
    Pour un "mécanisme de variable globale", il entend que tu dois créer une activité "mère" de laquelle hériteront tes activités A et C.

    Dans cette activité mère, tu déclares tes attributs avec le mot clé static. Cela fera en sorte de ne créer qu'une seule fois ces attributs. Ils seront "partagés" entres les différentes activités filles.

    SharedPreferences est, comme son nom l'indique, surtout utilisé pour stocker les préférences d'une application, c'est à dire les options. Un peu comme le principe d'un fichier .ini

    Perso j'utilise un Bundle que je passe en Extra de l'intent.

  7. #7
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 970
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 970
    Par défaut
    Oui un bundle c'est mieux.

    Attention que les variables static peuvent être resetées si Android estime qu'il a besoin d'espace mémoire

    Les sharedPrefs c'est pratique mais lent.

  8. #8
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Par défaut
    Pour ma part, dans l'hypothese ou tu cherche a faire communiquer 2 Activity de maniere asynchrone, j'utiliserai un Broadcast Intent. De ce fait, si l'Activity sensé recevoir l'information n'est pas dispo (pas encore ouverte ou fermé par l'utilisateur ou le GB) tu n'auras pas d'erreur d'execution.

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/08/2007, 12h47
  2. [HTML] Quel DOCTYPE dois-je utiliser ?
    Par Azashub dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 24/10/2006, 08h53
  3. [SQL2005] Quelle collation dois-je utiliser ?
    Par StormimOn dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/08/2006, 11h03
  4. dois-je utiliser RMI?
    Par popopate dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 14/07/2006, 16h46
  5. Dois je utiliser Xml ?
    Par shaudron dans le forum XML/XSL et SOAP
    Réponses: 11
    Dernier message: 07/03/2006, 19h01

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