android – 如何控制Fragment和FragmentPagerAdapter的生命周期

android – 如何控制Fragment和FragmentPagerAdapter的生命周期,第1张

概述我试图弄清楚当与FragmentPagerAdapter结合使用时,是否有一种控制Fragment生命周期的方法. 我的目标是在用户将其滑入视图时触发当前可见片段的AsyncTask. 截至目前,我只能创建一个应用程序,当运行FragmentPagerAdapter代码时,实例化我希望可用的所有片段,同时完成每个片段的“完整启动生命周期”. 我希望Fragment的AsyncTask在Fragme 我试图弄清楚当与FragmentPagerAdapter结合使用时,是否有一种控制Fragment生命周期的方法.

我的目标是在用户将其滑入视图时触发当前可见片段的AsyncTask.

截至目前,我只能创建一个应用程序,当运行FragmentPagerAdapter代码时,实例化我希望可用的所有片段,同时完成每个片段的“完整启动生命周期”.

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

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

解决方法 您可能正在寻找.setonPageChangedListener() – 方法.调用mVIEwPager.setonPageChangedListener(new OnPageChangedListener(){…})或在适配器中实现VIEwPager.OnPageChangedListener(并设置mVIEwPager.setonPageChangedListener(mAdapter)).

在onPageSelected() – 方法中,执行asynctask并取消任何先前的实例.这样,当您的页面(完全)可见时,您的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");     }});
总结

以上是内存溢出为你收集整理的android – 如何控制Fragment和FragmentPagerAdapter的生命周期全部内容,希望文章能够帮你解决android – 如何控制Fragment和FragmentPagerAdapter的生命周期所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1127080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存