Android服务:在#onCreate()上按需绑定与绑定绑定

时间:2012-02-09 08:57:43

标签: android service

我们有一项服务可以处理我们的一项活动。我们对Android很新,并想知道绑定到该服务的最佳时刻是什么。我们只需要通过活动可能进行的一半交互的服务。所以我们必须选择两种可能性之一:

  • 在我们真正需要它时绑定到服务,这会增加相当多的开销实现
  • 在onCreate()方法中绑定到服务,而不会检查服务是否正在运行,是否按需绑定,可能是缓存请求等等。

这里的“安卓方式”是什么?正在运行的服务是否需要大量开销,还是仅在真正需要时启动?服务本身非常轻巧。

1 个答案:

答案 0 :(得分:1)

我个人更喜欢在onCreate()中调用bindService(),在完成使用之后,在onDestroy()中调用unbindService()。原因是bindService()实际上是一个异步调用。这在API中没有充分记录。当您调用bindService()时,您在ServiceConnection.onServiceConnected()回调方法中获取的binder对象的引用不会立即实例化,同时在调用bindService()之后并且在binder对象获得实例化并准备使用之前存在延迟。因此,最适合调用它的地方是onCreate(),因为我们通常不会执行太多繁重的操作,并且需要在此阶段立即使用binder对象。