fragment懒加载时生命周期分析
来源:互联网 发布:保利投资顾问待遇知乎 编辑:程序博客网 时间:2024/06/03 17:00
使用fragment懒加载可以让fragment在没有visible时不加载网络数据,具体生命周期如下:
当fragment不可见时:
E/BFragment: setUserVisibleHint方法执行了
E/BFragment: onInvisible
E/BFragment: onCreate方法执行了
E/BFragment: onCreateView方法执行了
E/BFragment: onStart方法执行了
E/BFragment: onResume方法执行了
当fragment由不可见变为可见时:
E/BFragment: setUserVisibleHint方法执行了
E/BFragment: onVisible
当fragment再次变为不可见时:
E/BFragment: setUserVisibleHint方法执行了
E/BFragment: onInvisible
E/AFragment: onVisible
可以在onVisible和onInvisible进行相关操作,最后贴上BFragment的代码:
public class BFragment extends Fragment {
ImageView img;boolean isVisiable;private static final String TAG = "BFragment";public BFragment() { // Required empty public constructor}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_b, container, false); img = (ImageView) view.findViewById(R.id.img); Log.e(TAG,"onCreateView方法执行了"); return view;}@Overridepublic void onStart() { super.onStart(); Log.e(TAG,"onStart方法执行了");}@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e(TAG,"onCreate方法执行了");}@Overridepublic void onResume() { super.onResume(); Log.e(TAG,"onResume方法执行了");}@Overridepublic void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); Log.e(TAG,"setUserVisibleHint方法执行了"); if(getUserVisibleHint()){ isVisiable = true; onVisible(); }else{ isVisiable = false; onInvisible(); }}private void onInvisible() { Log.e(TAG,"onInvisible");}private void onVisible() { Log.e(TAG, "onVisible"); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } getActivity().runOnUiThread(new Runnable() { @Override public void run() { img.setVisibility(View.VISIBLE); } }); } }).start();}
}
阅读全文
0 0
- fragment懒加载时生命周期分析
- Android Fragment(生命周期+懒加载)
- Fragment懒加载分析使用
- Fragment生命周期分析测试
- Android Fragment 生命周期分析
- Fragment生命周期方法探究及懒加载模式实现
- 【商城开发八】Fragment篇:生命周期和懒加载
- Fragment生命周期、静态加载、动态加载
- Android之Fragment懒加载分析
- Fragment的Adapter分析及懒加载
- Fragment(四)Fragment生命周期分析
- Fragment实例化,Fragment生命周期源码分析
- Fragment生命周期的简单分析
- Fragment加载过程分析。
- Fragment加载过程分析
- Fragment的懒加载(解决ViewPager中Fragment生命周期错乱的问题)
- Fragment懒加载的实现方法(含源码分析)
- Android Activity生命周期以及Fragment生命周期的区别与分析
- mysql触发器
- 多旋翼无人机抛飞实现流程_APM固件
- 堆排序
- SQL 之 cast()函数
- Gym
- fragment懒加载时生命周期分析
- Java中泛型 类型擦除
- 彻底卸载MySQL的方法
- ckeditor 学习笔记【3】粘贴事件/截图粘贴
- Win32串行通信中文版(Serial Communications In Win32)
- HDU5858 Hard problem
- RabbitMQ--RabbitMQ-C客户端使用说明
- 使用jQuery的一些注意事项总结(持续更新......)
- 数据挖掘流程