我正在使用AIDL在客戶端活動和服務之間執行IPC。使用bindService()綁定服務時,ServiceConnection.onServiceConnected()似乎運行。但是,在釋放服務時調用unbindService()之後,沒有任何跡象表明ServiceConnection.onServiceDisconnected()會運行。任何人都可以提供任何見解,爲什麼會發生這種情況?AIDL 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");
}
};
任何幫助是非常讚賞。提前致謝。