Comment binder un service avec plusieurs activités ?
Bonjour à tous,
Voilà j'ai un problème que je n'arrive pas à résoudre.
Théorie :
J'ai crée une classe NetworkService héritant de Service qui s'occupe de toutes les actions liées au réseau. Connection / Déconnection / Requête / etc..
J'aimerai pouvoir binder cette classe à toutes les activités de mon application, pour que chacune puisse faires des requêtes sur le serveur distant.
Pratique :
Première Activité
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| private INetwork iNetwork;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.displayList();
this.bindService(new Intent(Welcome.this,NetworkService.class),
mConnection, Context.BIND_AUTO_CREATE);
}
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName arg0, IBinder service) {
Log.e("---->", "Entrer dans onServiceConnected");
iNetwork = INetwork.Stub.asInterface(service);
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
Log.e("", "Interface Disconnected");
}
}; |
Deuxième Activité
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| private INetwork iNetwork;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.bindService(new Intent(Video.this,NetworkService.class),
mConnection, Context.BIND_AUTO_CREATE);
TextView textview = new TextView(this);
textview.setText("This is the Video tab");
setContentView(textview);
}
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName arg0, IBinder service) {
Log.e("---->", "Entrer dans onServiceConnected");
iNetwork = INetwork.Stub.asInterface(service);
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
Log.e("", "Interface Disconnected");
}
}; |
Chaque fois que j'essaie de me servir dans ma deuxième activité, d'une fonction de mon service, mon application crash.
Quelqu'un serait il pourquoi ? Peut être que je m'y prend mal même en théorie.
Je suis ouvert à toutes vos propositions.
Merci d'avance.