在Android中超过元素方法在每个片段中都无法工作



我正在创建具有3个片段的Android应用程序,并且每次回到片段时都需要刷新数据。因此,我在每个片段中覆盖onResume()方法,然后将系统打印到resume中以检查是否正常工作。

但是,当我导航到第二片时,它显示了添加系统的添加系统打印3 on Resume。当我进入片段3时,它没有显示任何添加系统打印。但是当我再次回到第二次时,它显示了添加片段1的系统打印。

请帮助我解决此问题。

看来您在ViewPager中使用FragmentStatePagerAdapter。正是适配器的预期行为仅创建了相邻的片段。如果您不希望此行为使用FragmentPagerAdapter。但是请注意所有片段所占用的内存。

使您的片段实现接口:

public interface Listener {
    void resume()
}

使您的活动实现OnPageChangeListener

viewPager.addOnPageChangeListener(this);

然后执行以下操作:

@Override
public void onPageSelected(int position) {
    ((Listener) mAdapter.getItem(position)).resume();
}