Android, unbind service et onServiceDisconnected problème
Je ne suis pas bon en anglais, mais je voudrais essayer d'expliquer mon problème dans la bonne voie.
Donc, le problème est:
1) j'ai un local de service
2) - je commencer, et ensuite lié à elle.
3) Problème apparaît lorsque je suis sur le point de fermer ce service. onServiceDisconnected méthode de mon implémentation de la classe ServiceConnection n'est jamais appelée. Si je ferme manuellement (à partir de paramètres), ou par unbindService, ou par stopService, ou par la combinaison de unbindService et stopService - onServiceDisconnected continue à ne pas être appelé.
Ce que je fais mal?
Court code est ci-dessous:
protected ServiceConnection mServerConn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
Log.d(LOG_TAG, "onServiceConnected");
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.d(LOG_TAG, "onServiceDisconnected");
}
}
public void start() {
//mContext is defined upper in code, I think it is not necessary to explain what is it
mContext.bindService(i, mServerConn, Context.BIND_AUTO_CREATE);
mContext.startService(i);
}
public void stop() {
mContext.stopService(new Intent(mContext, ServiceRemote.class));
mContext.unbindService(mServerConn);
}
Je suis de tester ce code en vertu de l'émulateur d'Android 2.2
source d'informationauteur UAS
Vous devez vous connecter pour publier un commentaire.
onServiceDisconnected n'est appelée que dans des situations extrêmes (écrasé /tués).
qui est très peu probable de se produire pour un service local puisque tous les composants de votre application s'exécute normalement dans le même processus... ce qui veut dire, à moins que vous intentionnaly séparer ou de détruire le service, il doit rester connecté, ou mourir avec le composant à l'aide.
J'ai utilisé
Context.BIND_AUTO_CREATE
dans bindService. J'ai chercher même problème après l'application de son travail parfait pour moi.