Jump to content

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( ) ??

Edited by dekans
Link to comment
Share on other 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
}
};

Link to comment
Share on other 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é)

Edited by Galize
Link to comment
Share on other 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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...