unbindService()不解除服务绑定?

时间:2013-10-02 11:56:28

标签: android android-service

我有一个服务,它将Messenger存储为成员变量,并在onBind(Intent)上返回messenger.getBinder()。我通过以下方式连接此服务:

void Bind()
{
    Intent intent = new Intent("com.example.RemoteBindingService");
    bindService(intent, mServiceConnection,
            Context.BIND_AUTO_CREATE); // Context.BIND_AUTO_CREATE
                                       // means
                                       // "start if not started"

    mBound = true;
}

在调用Bind()之前,向服务发送消息不会执行任何操作。调用Bind()后,向服务发送消息正常工作。但是,在调用

后,我希望如此
void Unbind()
{
    if(mBound == true)
    {
        unbindService(mServiceConnection);
        mBound = false;
    }
}

向服务发送消息将再次无效。但事实并非如此 - 服务仍在继续。任何人都可以解释如何正确地断开与服务的连接吗?

1 个答案:

答案 0 :(得分:0)

我假设您使用startService()启动了服务,因为如果它是一个绑定的服务,如果最后一个Activity从服务中取消,它将被杀死。

你可以阻止它