4

我有一个将 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;
    }
}

向服务发送消息将再次无济于事。但是,情况并非如此 - 服务继续工作。谁能解释如何正确断开与服务的连接?

4

1 回答 1

0

我假设你使用 startService() 启动了你的服务,因为如果它是一个绑定的服务,那么如果最后一个活动从服务中解除绑定,它就会被杀死。

你可以阻止它

于 2013-10-02T12:03:31.583 回答