使用Activity生命周期方法,绑定和解除绑定到本地服务的最佳策略是什么?

时间:2010-09-15 16:11:35

标签: android

我从几个活动绑定到本地Service(即,不使用IPC和AIDL)。我想确保我没有从用户未使用的活动中获取对此服务的引用。

我的选择是:1。)绑定到onCreate()中的服务并解除onDestroy()中的绑定。 2.)绑定onStart()并解除绑定onStop()。 3.)在onResume()中绑定并在`onPause()`中取消绑定。或者这些的一些组合。

哪种绑定和解除绑定到本地服务的最佳实践方式?我不需要担心从已停止的活动中保持本地连接吗?

此外,一旦绑定到此特定服务,我将检索CursorListActivity通过CursorAdapter附加到onCreate()。当活动不在视图中时,Cursor检索的数据可能已更改,因此我想在再次显示活动时重新查询它。如果我在onRestart()中绑定,我可以在onResume()中重新查询。如果每次数据都是新的时我绑定{{1}},因为我会在服务的连接回调中查询它。

思考,评论,批评或建议?

1 个答案:

答案 0 :(得分:1)

这取决于服务是通过绑定启动还是通过调用startService()来启动的。如果是startService(),则绑定/解除绑定的位置/时间差异很小。

如果它是通过绑定来启动的,我们无法在不知道具体细节的情况下回答这个问题。

看起来您的服务将始终在运行(即由startService()启动),因此看起来绑定/取消绑定的位置无关紧要。只需选择最合乎逻辑的地方。