我们有一个服务,负责我们的某个活动中的几件事。我们在Android开发中还比较新,想知道绑定该服务的最佳时机是什么。我们只需要该服务来处理活动可用的一半交互。所以我们必须选择以下两种可能性之一: 我们真正需要服务时绑定它,这将增加实现方面的相当大的开销 在onCreate()方法中绑定服务,避免了检查服务是否正在运行、按需绑定服务、缓存请求等开销 在这里,“Android方式”是什么?运行服务是否会带来很大的负担,或者只应在真正需要时启动服务?服务本身非常轻量级。
个人而言,我更喜欢在 onCreate() 中调用 bindService(),在使用完毕后在 onDestroy() 中调用 unbindService()。原因是 bindService() 实际上是一个异步调用,在 API 中没有被很好地记录。当你调用 bindService() 时,在 ServiceConnection.onServiceConnected() 回调方法中获取的 binder 对象的引用并不会立即实例化,调用 bindService() 和 binder 对象实例化并准备好使用之间存在一定的时间差。因此,在 onCreate() 中调用它是最合适的,因为在这个阶段通常不会执行太多的重操作,并且需要立即使用 binder 对象。