【发布时间】:2010-01-11 08:28:07
【问题描述】:
我正在使用 AIDL 在客户端活动和服务之间进行 IPC。 ServiceConnection.onServiceConnected() 似乎在使用 bindService() 绑定服务时运行。但是,在释放服务时调用 unbindService() 后,没有迹象表明 ServiceConnection.onServiceDisconnected() 曾经运行过。任何人都可以提供任何关于为什么会发生这种情况的见解吗?
在此处找到有关此问题的另一个线程: When does ServiceConnection.onServiceDisconnected() get called?
这并不能完全回答我的问题。我的服务没有因任何异常而失败。
这是我的服务绑定和发布代码:
//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" );
}
};
非常感谢任何帮助。提前致谢。
【问题讨论】:
标签: android