Я делаю IPC между клиентской активностью и службой, используя AIDL. ServiceConnection.onServiceConnected (), кажется, выполняется при связывании Сервиса с помощью bindService (). Однако после вызова unbindService () при освобождении Сервиса указание ServiceConnection.onServiceDisconnected () никогда не запускается. Кто-нибудь может дать какое-либо представление о том, почему это происходит?
Найдена другая тема по этому вопросу здесь:
Когда вызывается ServiceConnection.onServiceDisconnected ()?
Что не совсем отвечает на мой вопрос. Моя служба не работала ни при каких исключениях.
Вот мой сервис привязки и выпуска кода:
//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" );
}
};
Любая помощь очень ценится. Заранее спасибо.