Bonjour,
Je voudrais savoir comment fais t-on pour qu'un service local envoi des données à une activity dès qu'il y en a.
Merci.
Bonjour,
Je voudrais savoir comment fais t-on pour qu'un service local envoi des données à une activity dès qu'il y en a.
Merci.
des String.
Ce que je compte faire c'est que le service récupère des données dès qu'il y en a puis les transmet à l' activity A ainsi de suite.
Le problème c'est que mon activité se lance une seule fois alors qu'elle doit se lancer à chaque fois qu'il y a des données.
Avez vous une idée?
Bonjour,
ça c'est assez simple il te suffit d'utiliser un Handler pour que du service tu puisses envoyer des messages à ton Activity.Ce que je compte faire c'est que le service récupère des données dès qu'il y en a puis les transmet à l' activity A ainsi de suite.
Le Handler sera commun entre l'activity et le service .
Par contre là, cela implique que le service doit lancer l'activity si celle ci n'est pas en cours d'exécution ou si l'activity est en suspend .Le problème c'est que mon activité se lance une seule fois alors qu'elle doit se lancer à chaque fois qu'il y a des données.
Contrôle alors l'état de ton activity , et lance la ou réveille la, si nécessaire
le problème c'est que l'activity se recharge alors que j'essaye de rajouter à ma liste les élements sans qu'elles soient supprimé
je souhaiterais garder mon activity lancé la première fois puis qu'elle actualise à chaque fois dès qu'il y a des données.
Car ce que j'ai actuellement c'est tout le temps un startActivity
Utilise un Handler . Si tu sais que ton activity est lancé .je souhaiterais garder mon activity lancé la première fois puis qu'elle actualise à chaque fois dès qu'il y a des données.
Car ce que j'ai actuellement c'est tout le temps un startActivity
C'est facile a savoir si ton handler est null alors pas d'activity si ton handler est non null alors tu envoie ton message .
Tu ajustes la variable de l'handler a partir de l'activity.
puis je avoir un exemple?
peut-on le faire avec un binder?
Euh ....puis je avoir un exemple?
http://developer.android.com/referen...p/Service.html
doit-on faire tout le temps un startActivity(monintent) afin d'envoyer l'intent à l'activity?
oui mais ce n'est pas ce que je compte faire
car je souhaiterais que l'intent du service soit attribué à une activity unique et non aux ensembles des activités.
Non , tu ne le fais que si l'activity n'es pas lancé. Soit la première fois .doit-on faire tout le temps un startActivity(monintent) afin d'envoyer l'intent à l'activity?
De plus cela suppose que tu lance une activity sans prévenir l'utilisateur . TU peux toujours garder tes données en mémoire et les envoyé quand l'activity est affichée.
Pour cela utilise un Handler , il n'y a rien de plus simple .
Dans ton Activity
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private final Handler mHandlerActivity = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); String message = msg.getData().getString("tag"); } };
Dons ton Service.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Bundle b = new Bundle(); Message msg = mHandler.obtainMessage(); b.putString("tag", "ta valeur"); msg.setData(b);
Il te manquera plus qu'a faire le lien entre le mHandlerActitivy et le mHandler.
Et de là tu as un lien entre le service et l'activity si celle-ci est lancé.
De plus ton service peu se lier par là suite à n'imnporte quelle activity tant que celle ci lui donne un handler .
Bonjour,
Désolé de ré-ouvrir ce post mais je ne vois pas comment faire le lien entre le handler de mon activity (qui est créer dans mon activity) et mon service.
Merci,
Drlord.
Partager