Je fais un IPC entre une activité client et un service utilisant AIDL. ServiceConnection.onServiceConnected() semble s'exécuter lors de la liaison du service avec bindService(). Cependant, après l'appel de unbindService() lors de la publication du Service, il n'y a aucune indication que ServiceConnection.onServiceDisconnected() soit exécuté. Quelqu'un peut-il donner un aperçu de la raison pour laquelle cela se produit?AIDL ServiceConnection.OnServiceDisconnected() non appelé
trouvé un autre thread sur cette question ici: When does ServiceConnection.onServiceDisconnected() get called?
Ce qui ne répond pas tout à fait ma question. Mon service n'a pas échoué à aucune exception.
Voilà mon service obligatoire et libérant le code:
//bind service
private void initService()
{
conn = new NetServiceConnection();
Intent i = new Intent();
i.setClassName("framework.network", "framework.network.NetService");
bindService(i, conn, Context.BIND_AUTO_CREATE);//This returns TRUE
}
//unbind service
private void releaseService()
{
unbindService(conn);
conn = null;
}
class NetServiceConnection implements ServiceConnection
{
//THIS RUNS FINE
public void onServiceConnected(ComponentName name, IBinder service) {
mService = INetService.Stub.asInterface(service);
Log.d("ADDERSERVICECLIENT","onServiceConnected");
}
//THIS DOESN'T RUN
public void onServiceDisconnected(ComponentName name) {
mService = null;
Log.d("ADDERSERVICECLIENT","onServiceDisconnected");
}
};
Toute aide est très appréciée. Merci d'avance.