android开发 笔记(2.14)
1.碎片的四种状态
- 运行状态
若碎片所关联的活动正处于运行状态时,该碎片是可见的那它就也处于运行状态。 - 暂停状态
若碎片所关联的活动进入暂停状态时,该碎片就会进入到暂停状态。 - 停止状态
若碎片所关联的活动进入停止状态时,该碎片就会进入到停止状态;或者当调用FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但有在事务提交之前调用addToBackStack()方法,这时的碎片也会进入到停止状态。 - 销毁状态
若碎片所关联的活动被销毁时,该碎片就会进入到销毁状态;或者通过调用 FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但在事务提交之前并没有调用addToBackStack()方法,这时的碎片也会进入到销毁状态。
2.碎片的几种回调方法
- onAttach()
当碎片和活动建立关联的时候调用。 - onCreate()
当第一次创建碎片的时候调用。 - onCreateView()
为碎片创建视图(加载布局)时调用。 - onActivityCreated()
确保与碎片相关联的活动一定已经创建完毕的时候调用,也就是当Activity中的onCreate方法执行完后调用。 - onStart()
碎片从不可见变为可见时调用。 - onResume()
碎片准备好与用户进行交互时调用。 - onPause()
碎片处于暂停状态时调用。 - onStop()
碎片处于停止状态时调用。 - onDestroyView()
碎片中的视图被移除时调用。 - onDestory()
碎片销毁之前调用。 - onDetach()
当碎片和活动解除关联的时候调用。
3.碎片完整的生命周期示意图

4.简单实例:
对上一节的例子进行修改
RightFragment.java相关代码修改为:
@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(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Log.d(TAG, "onCreateView: ");
View view = inflater.inflate(R.layout.right_fragment, container, false);
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: ");
}
}
运行后 logcat中:

之后点击Button:
由于页面发生替换,所以RightFragment进入停止状态,如果调用的时候没有调用上一节说到的 addToBackStack()方法,此时的RightFragment就会进入销毁状态,onDestroy()和onDetach()方法就会执行
logcat中:
点击Back:

本文详细探讨了Android碎片的四种状态:运行、暂停、停止和销毁,并解析了对应的回调方法,如onAttach、onCreate、onResume等。同时提供了一个简单的实例,展示如何在实践中跟踪和管理Fragment的生命周期。附带了Fragment完整生命周期的示意图,帮助开发者更好地理解和应用Fragment。
1585

被折叠的 条评论
为什么被折叠?



