Aller au contenu

Communication et persistence d'un service.


dekans

Recommended Posts

Je souhaite créer un service (qui fait serveur) qui devra remonter des infos à l'activité principale.

Pour le transfert en lui même, putExtra( ) et getExtra( ) doivent bien faire l'affaire.

Mais comment être notifié dans l'activité que le service a fait un putExtra( ) ??

Modifié par dekans
Lien vers le commentaire
Partager sur d’autres sites

Il faut déclarer un BroadcastReceiver dans ton activity et définir ce qu'il fait (une seule méthode, onReceive()):

Par exemple, dans le onResume():

@Override
public void onResume() {
 super.onResume();
registerReceiver(receiver, new IntentFilter(TON_SERVICE.ACTION));
}

Il faut penser à le dégager lors du passage au mode "Pause" de ton activity:

@Override
public void onPause() {
  super.onPause();
  unregisterReceiver(receiver);
}

private BroadcastReceiver receiver =new BroadcastReceiver() {
 public void onReceive(Context context, Intent intent) {
     // fait des trucs ici
}
};

Lien vers le commentaire
Partager sur d’autres sites

tu crées bien un nouveau thread dans ton ton service ?

très grossièrement :

onCreate(xxxxx)
{


new Thread(new Runnable() {
 public void run()
 {
    while (!lespoulesaurontdesdents)
    {
      //Fait mon boulot
    }
  }
}).start();
}

(mon eclipse est pas lancé)

Modifié par Galize
Lien vers le commentaire
Partager sur d’autres sites

Non j'avais lancé le service dans un process à part. (mais avant d'en faire un service c'était un thread)

Mais je vais lancer un thread dans le service (et remettre le service dans le process principal).

Pour info il était killé car j'utilisais une fonction bloquante dedans, et android considère qu'un service qui ne répond pas est mort => kill

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...