AIDL ServiceConnection.OnServiceDisconnected () не вызывается - PullRequest
2 голосов
/ 11 января 2010

Я делаю 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" );
    }
};

Любая помощь очень ценится. Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 11 января 2010

OnServiceDisconnected () вызывается, когда соединение с Сервисом потеряно. Обычно это происходит, когда процесс, в котором размещается служба, потерпел крах или был остановлен.

более простым способом :::

Это вызывается, когда соединение со службой было неожиданно разорвано, то есть его процесс прерывается.

Надеюсь, это решит вашу проблему.

4 голосов
/ 11 января 2010

Не понимаю, чем вопрос, на который вы ссылаетесь, отличается от этого вопроса?

Ваш сервис не отказывает & mdash; вы вручную вызываете unbindService(), поэтому не возникает условия ошибки, из-за которого вызывается onServiceDisconnected().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...