6

我有一个主活动,我在 ViewPager 中动态创建页面(通过 FragmentPagerAdapter)。到现在为止还挺好。

现在我得到了一个我希望该活动/那些片段绑定到的服务实现。这就是我问自己的一点,哪个是最佳实践。

  1. 绑定到活动并通过活动通过回调从片段通信到服务?(在 onCreate()/onDestroy() 中绑定/解除绑定)
  2. 在创建时绑定到每个片段并在销毁时取消绑定?(同上)

两种实现似乎都有效。但第二个提供了与服务更直接的沟通。

在测试第二个片段时,在创建时绑定到服务。但是当我删除除一个之外的所有内容时,它们似乎并没有被破坏。当我再次从该点开始创建片段(删除其他片段后只有一个片段)时,仅当我创建的片段比以前创建的片段多时才会绑定到服务。

也许再次获得更好的概述。

  • 在寻呼机中使用一个片段创建活动:连接到片段的服务
  • 在寻呼机中再创建 2 个片段:每次创建时连接的服务
  • 删除除一个片段外的所有片段:似乎没有调用解除绑定
  • 再次创建 2 个片段:服务似乎未连接
  • 创建另一个片段:创建时连接的服务

这是可以预期的行为吗?这是我应该选择的实现吗?显然像回调通信那样更直接的通信?

感谢您提前输入!

4

1 回答 1

4

我更喜欢第一种方法,特别是如果您使用本地服务,因为您可以处理您的服务。

假设您的活动已经引用了名为“MyLocalService”的本地服务(查看本地服务示例)。然后从您的片段中,您可以轻松地调用类似:getActivity().getMyLocalService()。这样做的好处是您的片段不必处理服务的生命周期。希望这可以帮助。

于 2013-08-15T21:52:56.623 回答