我正在创建类似Facebook Chat Heads的内容,并且需要访问Service中的FragmentManager。很多人会说我做不到,但是总有办法,所以我问你们,如何从Service中访问FragmentManager?

在我的服务中,我使用onCreate方法:

LayoutInflater inflater = LayoutInflater.from(this);
layout = inflater.inflate(R.layout.box, null);
ViewPager pager = (ViewPager) layout.findViewById(R.id.pager);

FragmentManager fm = [HOW CAN I ACCESS THIS?];

pager.setAdapter(new MyPagerAdapter(fm));

最佳答案



不仅不可能,而且您不需要它。 Android中没有什么只能通过 fragment 来完成的。

例如,您似乎正在使用ViewPager。您不需要使用带有ViewPager的 fragment 。实际上,ViewPager本身与 fragment 无关。两种具体的PagerAdapter实现(FragmentPagerAdapterFragmentStatePagerAdapter)碰巧使用了 fragment 。但是完全可以创建自己的不使用 fragment 的PagerAdapter实现。而且,实现与PagerAdapter一起工作的Views所花的时间要比将某种FragmentManager(与 Activity 生命周期密不可分的)填入Service所花费的时间要少得多。

关于java - 如何在服务中访问FragmentManager?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24026072/

10-12 04:51