碎片的生命周期
来源:互联网 发布:ubuntu server安装桌面 编辑:程序博客网 时间:2024/06/07 20:33
碎片的生命周期
碎片的运行状态分为4个状态
- 运行状态:当碎片处于可见状态,并且与之相关的活动也处于运行状态时,碎片也处于运行状态。
- 暂停状态:当一个活动进入暂停状态(由于另一个并未占满整个屏幕的活动被加到栈顶)的时候,与它相关联的可见碎片就会进入到暂停状态。
- 停止状态:当一个活动处于停止状态,那么与之相关联的碎片也会处于停止状态,或者通过FragmentManager的remove(),replace() 方法将碎片从活动中移除,如果在事务提交之前调用FragmentManager.addBackToStack()方法,当前的碎片会进入停止状态。总的来说进入停止状态的碎片是完全不可见的,会随时被系统回收。
- 销毁状态:碎片总是依附于活动而存在的,如果活动处于销毁状态,那么与之相关的碎片也会处于销毁状态, 或者通过FragmentManager的remove(),replace()方法将碎片从活动中移除,并且在事务提交之前并没有调用addBackToStack()方法的话,该碎片也会进入销毁状态。
与Activity类似,Fragment类也提供了一些回调方法,贯穿了碎片的整个生命周期,fragment类几乎包含了活动的所有方法,同时也附加了一写方法:
- onAttach(): 当碎片与活动建立关联的时候调用。
- onCreateView(): 为碎片创建视图(加载布局)调用。
- onActivityCreated(): 确保与碎片相关联的活动一定已经创建完成后调用。
- onDestoryView(): 当与碎皮相关联的视图被销毁时调用。
- OnDetach(): 当碎片与活动取消关联时调用。
示例图:
可以利用上一篇《Fragment的案例解析》的碎片类改动后,运行观察碎片类的生命周期。改动后的类如下所示:
public class RightFragment extends Fragment { public static final String TAG="RightFragment"; @Override public void onAttach(Context context) { super.onAttach(context); Log.d(TAG, "onAttach: "); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "onCreate: "); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view= inflater.inflate(R.layout.right_fragment, container, false); Log.d(TAG, "onCreateView: "); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.d(TAG, "onActivityCreated: "); } @Override public void onStart() { super.onStart(); Log.d(TAG, "onStart: "); } @Override public void onResume() { super.onResume(); Log.d(TAG, "onResume: "); } @Override public void onPause() { super.onPause(); Log.d(TAG, "onPause: "); } @Override public void onStop() { super.onStop(); Log.d(TAG, "onStop: "); } @Override public void onDestroyView() { super.onDestroyView(); Log.d(TAG, "onDestroyView: "); } @Override public void onDestroy() { super.onDestroy(); Log.d(TAG, "onDestroy: "); } @Override public void onDetach() { super.onDetach(); Log.d(TAG, "onDetach: "); }}
阅读全文
0 0
- Fragments碎片的生命周期
- 碎片(Fragment)的生命周期
- 碎片的生命周期
- 碎片的生命周期
- Fragment碎片的生命周期
- 碎片的生命周期
- android:碎片的生命周期
- 碎片的生命周期
- Fragment碎片的生命周期
- Android---碎片的生命周期
- 碎片的生命周期
- Fragment(碎片)(2)-的生命周期
- 【Android】21、碎片的生命周期
- 第四章 碎片的生命周期
- Android学习之碎片的生命周期
- 【Android】55、体验碎片的生命周期
- 14读书笔记之碎片的生命周期:
- Android之Fragment(四):碎片的生命周期
- LayoutInflate渲染view源码分析
- Java
- angular.module参数详解
- malloc和new的区别
- Chrome 实用调试技巧
- 碎片的生命周期
- 网络流二·最大流最小割定理 HihoCoder
- unity batch
- MIT与FAIR提出「mixup」,利用数据和标签的随机线性插值提高神经网络的健壮性
- MariaDB和阿里云可以产生哪些化学反应?
- socket选项
- 2卷积神经网络相关API详解-2.5TensorFlow之损失函数API详解
- Laravel5.4中自定义404、503等错误页面
- 实战C/C++ 的依赖管理工具 – Conan