繁体   English   中英

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

[英]Binding and unbinding Android Service to/from Fragment (in ViewPager)

我有一个单一的Main-Activity,我在ViewPager中创建动态Pages(通过FragmentPagerAdapter)。 到现在为止还挺好。

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

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

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

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

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

  • 在pager中使用一个片段创建活动:连接到片段的服务
  • 在pager中创建2个以上的片段:每个创建都有服务
  • 除去一个片段之外的所有片段:unbinding似乎没有被调用
  • 再次创建2个片段:服务似乎没有连接
  • 创建另一个片段:在创建时受到服务

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

感谢您提前输入!

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM