首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ViewPager中管理otto注册方法

如何在ViewPager中管理otto注册方法
EN

Stack Overflow用户
提问于 2015-08-17 21:09:07
回答 1查看 407关注 0票数 0

我正在使用otto来通信服务和地图片段。在服务中,位置提供者获取发送到映射片段的位置数据。它工作得很好,但是我不能用ViewPager来管理otto的寄存器和注销方法。这个问题既没有提到奥托问题,也没有提到ViewPager问题。

如前所述,当服务接收到位置数据时,它将发送到map片段。为此,我必须在它们的特定生命周期事件中注册/取消注册片段和服务。此时,我正面临着ViewPager本质上的一个问题。默认情况下,ViewPager首先加载Home和Map片段,如下所示

结果,

  1. 在map片段中,otto注册方法被自动调用,而不需要从家中转到map片段。
  2. 在map片段中,otto注销方法在从它转到其他人时从来不被调用。

因此,这种行为使我无法管理otto方法。--即使选择了家庭或设置片段,映射片段也将是活动的,并从服务接收位置数据。我不想要这个。

我在github和这里搜索了otto与ViewPager的用法,但是没有任何问题或例子。在搜索了一下ViewPager之后,我发现一些人建议ViewPager.setOffscreenPageLimit(0)。But it does not work

那么,使用ViewPager和otto的正确方式是什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-17 21:20:45

如果您只想在MapFragment中看到事件时才接收它,那么您可以这样做:

代码语言:javascript
复制
public class MapFragment extends Fragment
    @Override
    public void setMenuVisibility(final boolean visible) {
        super.setMenuVisibility(visible);

        if (visible) {
            // register here
        } else {
            //unregister here
        }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32059742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档