ldcf.net
当前位置:首页 >> FrAgmEnt切换不销毁 >>

FrAgmEnt切换不销毁

fragment使用hide和show 不会再经过一次oncreate 等生命周期, 即不会销毁再创建 而使用replace 每次都会销毁然后重新 oncreate 创建

只要从fragmentmanage里remove掉就会尝试回收fragment,这个时候会找一下还有没有别的地方引用了这个fragment,比如你有个静态类或者有个Activity拿着这个fragment的实例引用,那就没法回收的,只有没有别的地方引用了,才会回收。

这时,如果页面3中有需要耗时的事件,比如网络访问。那么,在我们进行 1-->2 的操作的时候,就会不断的出现页面3加载的对话框(如果有的话)。而且如果快速的 1-->2-->3的切换,3中的内容很可能还没加载出来。 这样重复的加载,既影响体验、又耗...

这时,如果页面3中有需要耗时的事件,比如网络访问。那么,在我们进行 1-->2 的操作的时候,就会不断的出现页面3加载的对话框(如果有的话)。而且如果快速的 1-->2-->3的切换,3中的内容很可能还没加载出来。 这样重复的加载,既影响体验

Fragment的生命周期初探: 因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。 如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragm...

具体方法如下: 一,可以销毁的。创建fragment时,需要配置adapter,adapter继承FragmentStatePagerAdapter 在此类中有重写destroyItem,可以控制要销毁哪些fragment了。 二,如果用的是tabhost + viewpager ,viewpager 默认就缓存了显示页的一...

直接调用fragmentManager.beginTransaction().remove(mMangerFragment); fragmentTransaction.hide(fragments);

调用onDestroyView

怎么个切换法,用ViewPager切换的话,有个setOffScreenxxx什么的方法。

要销毁线程,你要设置break条件去跳出循环的,不然无法销毁。除非kill整个进程。你写循环的时候就写: boolean volatile isRunning = true; while (isRunning) {} 要销毁的时候设置isRunning = false;

网站首页 | 网站地图
All rights reserved Powered by www.ldcf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com