Page 1 sur 1

TP5 question

Publié : 17 mars 2017 18:24
par LudovicF
Bonjour

Je suis bloqué dans la première partie du TP.

Je n'arrive pas à récupérer la valeur de la constant COUNT_EXTRA dans le onReceive.

Je démarre mon Ticker dans :

Code : Tout sélectionner

    public void onClickSendBroadcast(View v){
        Intent intent = new Intent();
        Context leContexte = getApplicationContext();
        ticker = new Ticker(leContexte);
        ticker.startTicker();
        intent.setAction(ticker.TIME_ACTION_TIC);
        sendBroadcast(intent);

    }
et j'essai récupère dans le onReceive avec un getStringExtra:

Code : Tout sélectionner

    public class Receiver extends BroadcastReceiver {
        private String nom;

        public Receiver(String nom){
            this.nom = nom;
        }

        @Override
        public void onReceive(Context context, Intent intent) {
            String compteur = intent.getStringExtra("count");
            Log.i(TAG, "toto" + compteur);

        }
    }
Merci d'avance pour votre aide.

Re: TP5 question

Publié : 19 mars 2017 11:09
par Douin
Bonjour attention ce n'est pas "count" la clef de count ;-)

Bonne fin detp

Re: TP5 question

Publié : 19 mars 2017 14:26
par LudovicF
Bonjour,

Merci pour votre réponse.

Mais pour la a clef du count, dans intent.getStringExtra(String) j'ai essayé Ticker.TIME_ACTION_TIC, ticker.TIME_ACTION_TIC, Ticker.COUNT_EXTRA, ticker.COUNT_EXTRA, "COUNT_EXTRA", et "TIME_ACTION_TIC". Je n'arrive pas a récupérer la valeur.

Dans l'image ci-dessous je trouve pas le "count" du Ticker dans l'intente :

Image

Re: TP5 question

Publié : 20 mars 2017 0:21
par khris
Hello
Pourquoi cherches-tu à envoyer manuellement un Intent dans ta méthode onClickSendBroadcast()?
Tout ceci est normalement géré dans la classe Ticker.
Pas besoin donc de créer d'intent à cet endroit
Je pense que tu peux te contenter de la ligne ticker.startTicker(); :-)

Sinon pour ton problème, je vois que tu utilises la méthode Intent.getStringExtra() dans le onReceive du BroadcastReceiver.
Cela signifie que tu cherches à récupérer un String.
Or la donnée à récupérer (count) est un long.
Android ne trouve donc pas de String correspondant à la clé Ticker.COUNT_EXTRA.
Essaie avec la méthode Intent.getLongExtra(Ticker.COUNT_EXTRA);

Je pense que ça devrait t'aider ;-)

Re: TP5 question

Publié : 20 mars 2017 10:36
par LudovicF
Merci khris,

Je pensai que comme la constante COUNT_EXTRA était un string, il fallait getStringExtra() et pour l'intent dans le onClick, j'ai suivi le podcast :-/ un peut sans réfléchir...

En tous cas merci beaucoup khris.