何时绑定服务

时间:2016-02-29 12:34:50

标签: android android-activity android-service android-service-binding

我正在开发一个具有5个标签的主要活动的应用程序。换句话说,该主要活动包含可以用5个不同片段替换的framelayout。此外,应用程序可以从该主要活动导航到其他活动,但是用户必须返回到该主要活动以继续浏览应用程序。另一方面,我有一个在应用程序的onCreate方法上启动的启动服务,该服务从我们的API获取一些数据,其中一些数据用于下一个片段/活动: - 2个可以在主要活动中替换的5个片段。 - 可能从该主要活动开始的一些其他活动。

所以我想知道绑定到该服务的最佳方式(获取该数据)。我认为有3种选择:

1)需要服务数据的每个片段/活动在其自己的onStart方法上绑定它,并在其onStop上解除绑定服务。因此,每个片段/活动将完全独立于其他片段/活动。

2)需要来自服务和主要活动(而不是片段)的数据的活动绑定到服务。因此,在浏览选项卡时,服务不会被绑定/解除绑定,但即使用户位于不需要的片段中,服务也将被绑定。

3)在应用程序的onCreate方法上创建一个绑定到服务的单例,因此需要服务中某些数据的片段/活动将使用该单例而不是绑定/取消绑定到服务。

我目前已开发出第一个选项,但我一直在考虑哪个选项最好。你怎么看?你可以伸出援手吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

在这些情况下,我使用应用程序范围的单例。片段/活动可以随时访问服务,而无需担心停止和启动任何事情。我有一个例子here