Android 如何控制片段和片段PageRadapter的生命周期

Android 如何控制片段和片段PageRadapter的生命周期,android,lifecycle,fragment,Android,Lifecycle,Fragment,我试图弄清楚,当与FragmentPagerAdapter组合时,是否有一种方法可以控制片段的生命周期何时被处理 我的目标是在用户将当前可见片段滑动到视图中时,触发该片段的AsyncTask 到目前为止,我只能创建一个应用程序,当FragmentPagerAdapter代码运行时,该应用程序会实例化我想要的所有可用片段,一次完成每个片段的“完整启动生命周期” 我希望片段的AsyncTask在片段进入视图时被触发,在它离开视图时被取消。我已经尝试覆盖每个片段上的所有可用回调,但我还没有找到一个回调

我试图弄清楚,当与FragmentPagerAdapter组合时,是否有一种方法可以控制片段的生命周期何时被处理

我的目标是在用户将当前可见片段滑动到视图中时,触发该片段的AsyncTask

到目前为止,我只能创建一个应用程序,当FragmentPagerAdapter代码运行时,该应用程序会实例化我想要的所有可用片段,一次完成每个片段的“完整启动生命周期”

我希望片段的AsyncTask在片段进入视图时被触发,在它离开视图时被取消。我已经尝试覆盖每个片段上的所有可用回调,但我还没有找到一个回调或侦听器,当显示/未显示特定片段时,该回调或侦听器会做出反应


我正在使用Android支持包v4和ViewPager作为应用程序的基础。

您可能正在寻找
.setOnPageChangedListener()
-方法。调用
mViewPager.setOnPageChangedListener(新的OnPageChangedListener(){…})
在适配器中实现ViewPager.OnPageChangedListener
(并设置
mViewPager.setOnPageChangedListener(mAdapter)

onPageSelected()
-方法中,执行asynctask并取消以前的任何实例。这样,当页面(完全)可见时,将执行异步任务。如果希望在用户开始滚动时立即执行它,请改为操作
onPageScrollStatechanged()
onPageScrolled()
-方法

例如:

viewPager.setOnPageChangeListener(new OnPageChangeListener() {

    @Override
    public void onPageScrollStateChanged(int state) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onPageSelected(int position) {

        // check if asyncTask exists and is running; if so, cancel it.
        if(mAsyncTask != null) {

            if(mAsyncTask.getStatus() != AsyncTask.Status.FINISHED) {
                mAsyncTask.cancel(true); // cancel asynctask if activity is destroyed before it's finished
            }

            mAsyncTask = null;
        }

        mAsyncTask = new MyAsyncTask().execute("myParam"); 
    }

});

这正是我所需要的。马上就到!