我从几个活动绑定到本地Service
(即,不使用IPC和AIDL)。我想确保我没有从用户未使用的活动中获取对此服务的引用。
我的选择是:1。)绑定到onCreate()
中的服务并解除onDestroy()
中的绑定。
2.)绑定onStart()
并解除绑定onStop()
。
3.)在onResume()
中绑定并在`onPause()`中取消绑定。或者这些的一些组合。
哪种绑定和解除绑定到本地服务的最佳实践方式?我不需要担心从已停止的活动中保持本地连接吗?
此外,一旦绑定到此特定服务,我将检索Cursor
,ListActivity
通过CursorAdapter
附加到onCreate()
。当活动不在视图中时,Cursor检索的数据可能已更改,因此我想在再次显示活动时重新查询它。如果我在onRestart()
中绑定,我可以在onResume()
中重新查询。如果每次数据都是新的时我绑定{{1}},因为我会在服务的连接回调中查询它。
思考,评论,批评或建议?
答案 0 :(得分:1)
这取决于服务是通过绑定启动还是通过调用startService()来启动的。如果是startService(),则绑定/解除绑定的位置/时间差异很小。
如果它是通过绑定来启动的,我们无法在不知道具体细节的情况下回答这个问题。
看起来您的服务将始终在运行(即由startService()启动),因此看起来绑定/取消绑定的位置无关紧要。只需选择最合乎逻辑的地方。