首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用AIDL ServiceConnection.OnServiceDisconnected()

未调用AIDL ServiceConnection.OnServiceDisconnected()
EN

Stack Overflow用户
提问于 2010-01-11 16:28:07
回答 2查看 3.7K关注 0票数 2

我正在使用AIDL在客户端活动和服务之间执行IPC。在将服务与bindService()绑定时,ServiceConnection.onServiceConnected()似乎正在运行。但是,在发布服务时调用unbindService()之后,没有迹象表明ServiceConnection.onServiceDisconnected()曾经运行过。有人能提供一些关于为什么会发生这种情况的见解吗?

在这里找到了另一个关于这个问题的帖子:When does ServiceConnection.onServiceDisconnected() get called?

这还不能完全回答我的问题。我的服务在任何异常情况下都没有失败。

下面是我的服务绑定和发布代码:

代码语言:javascript
复制
//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" );
    }
};

任何帮助都是非常感谢的。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2010-01-11 16:44:23

我不明白你链接的问题和这个问题有什么不同?

您的服务没有失败--您是手动调用unbindService()的,因此不会发生导致调用onServiceDisconnected()的错误情况。

票数 4
EN

Stack Overflow用户

发布于 2010-01-11 17:20:13

当与服务的连接丢失时,将调用OnServiceDisconnected()。当托管服务的进程崩溃或被终止时,通常会发生这种情况。

以更简单的方式:

当与服务的连接意外断开时--即其进程崩溃时,将调用此函数。

希望这能解决你的问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2040625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档