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 :

broadcastreceiver qui reste en mémoire et communique avec l'activity


Sujet :

Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut broadcastreceiver qui reste en mémoire et communique avec l'activity
    bonjour à tous

    un peu noob, mais pour la bonne cause, je suis en train de développer une appli qui a besoin de recevoir un intentfilter, et de déclencher une série d'actions (je peux préciser, mais ca fait que compliquer)

    j'ai donc une mainactivity, qui gère l'UI, demande des infos/param à l'utilisateur
    le phone déclenche l'intent qui m'intéresse, le broadcast receiver l'intercepte, regarde les params de la mainactivity et fait ce qu'il a à faire.

    J'ai exploré 2 pistes
    1/ broadcast receiver statique - mais là, je n'arrive pas à récupérer les infos de mainactivity (et je suis pas sur qu'il ne soit pas viré de la mémoire de ttes façons)
    2/ broadcast receiver (via registerreceiver), mais là, l'app se fait décharger de la mémoire (normal), et je ne reçois plus les intent - normal mais c'est pas ce que je veux

    Donc, ma question... comment je peux avoir un broadcastreceiver qui reste le plus longtemps en mémoire (tout le temps... mais je reve), et qui communique avec la mainactivity ?

    Merci de l'aide ,
    J

  2. #2
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Statique ?

    Un broadcast receiver n'est jamais statique, il est instancié par le téléphone quand il en a besoin.
    Tu le déclares dans le manifest, et tout roule normalement, tu recois les intent "broadcast" comme désiré.

    Ensuite, pourquoi veux-tu accéder à l'activité ? Celle-ci n'existe que si l'application est "affichée", et n'a pas lieu d'être sinon.
    Si c'est pour partager des informations entre les deux, il existe des tas d'outils, comme les SharedPreferences.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Expert confirmé
    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
    Points : 4 166
    Points
    4 166
    Par défaut
    Je pense qu'il veut parler de l'enregistrement du Receiver, qui peut être réalisé directement depuis le manifeste ou programmatiquement. Mais le résultat est le même...
    Ce receiver partagera le même contexte que ton activité et donc aura accès aux SharedPreferences où sont stockées des données. Donc où est le problème ?
    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

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour les réponses, j'apprécie.

    nicroman a assez bien saisi mon objectif. Le broadcast receiver doit accéder à quelques variables détenues par la MainActivity. J'ai effectivement pensé aux sharedprefs, mais je pensais qu'il y avait un mécanisme plus adapté et performant (genre, je stocke le pointeur vers ma mainactivity dans mon receiver, mais j'ai l'impression que l'aspect dynamique ne le permet pas)

    en revanche, mon souci principal est que je viens re-tester en statique (ie déclaré statiquement dans le manifest et pas via un registerreceiver() ) et que le receiver se désactive après une heure ou deux (sans que j'ai de task killer auto qui soit en marche)

    donc =>
    1/ sharedprefs est il le meilleur moyen pour partager des infos entre receiver & mainactivity ?
    2/ comment faire pour que mon receiver reste tout le temps actif ?

    Merci pour votre aide,

    J.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mai 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    bon, ben j'ai avancé...
    - j'ai fait une belle classe qui lit mes sharedprefs, du coup l'utilisation est assez simple
    - quand le receiver est déclaré dans le manifest (statique donc), il est toujours appelé, meme si on kille l'appli

    cdlt

    J

Discussions similaires

  1. Ancre qui reste en mémoire
    Par michel71 dans le forum Langage
    Réponses: 9
    Dernier message: 10/07/2015, 00h47
  2. Variable qui reste en mémoire !
    Par vince29 dans le forum Zend_Form
    Réponses: 1
    Dernier message: 19/07/2011, 12h16
  3. Réponses: 8
    Dernier message: 22/12/2010, 15h47
  4. Définir une variable qui reste durablement en mémoire
    Par Tom1402 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/10/2008, 04h45
  5. [PHP-JS] Applet qui communique avec PHP
    Par darkbob dans le forum Langage
    Réponses: 1
    Dernier message: 18/12/2006, 07h16

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