将片段绑定和解除绑定与片段绑定(在ViewPager中)

时间:2013-08-15 21:15:53

标签: android android-fragments android-viewpager android-service fragmentpageradapter

我有一个单一的Main-Activity,我在ViewPager中动态创建Pages(通过FragmentPagerAdapter)。到目前为止一切都很好。

现在我得到了一个服务实现我希望那些活动/那些片段绑定到。这就是我问自己这是最好的做法。

  1. 绑定到活动并通过活动回调从片段到服务进行通信? (在onCreate()/ onDestroy()中绑定/解除绑定)
  2. 在创建时绑定到每个片段并在销毁时解除绑定? (与上述相同)
  3. 两种实现似乎都有效。但第二个提供与服务更直接的沟通。

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

    也许再次提供更好的概述。

    • 使用pager中的一个片段创建活动:服务连接到片段
    • 在寻呼机中再创建2个片段:每次创建时都附带服务
    • 删除除一个片段之外的所有片段:unbinding似乎不被称为
    • 再次创建2个片段:服务似乎没有连接
    • 创建另一个片段:在创建时加入的服务

    这是人们可以期待的行为吗?这是我应该选择的实施;回调通信显然比通信更直接?

    感谢您提前输入!

1 个答案:

答案 0 :(得分:4)

我更喜欢第一种方法,特别是如果您使用本地服务,因为您有服务句柄。

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