2009-06-09 63 views
23

我搞砸了Android服务,并且我发现ServiceConnection.onServiceConnected()在绑定到服务时被称为相当可预测的。何时调用ServiceConnection.onServiceDisconnected()?

但是,即使在VM死亡后,我的onServiceDisconnected()方法似乎永远不会被调用。

我已记录在服务上的调试消息,并显示所有线程已关闭,等等。我知道服务实现为进程;有没有我不知道的线程阻止了进程退出?

回答

24

它发生在远程服务崩溃时。因此,如果运行在与客户端不同的进程中的服务因某些异常而失败,那么您将失去连接并获得回调。

+2

它只是在崩溃?我期望在我调用`unbindService()`时调用它,并且因为没有更多客户端而退出服务。 – sehugg 2009-06-11 20:09:26