Android --- Fragemnt 的生命周期

Fragment的生命周期

Fragment的生命周期包含了几个关键的阶段,如下图所示:

OnAttach(Activity activity): 当Fragment被加入到Activity时调用。

onCreate(Bundle savedInstanceState): 创建Fragment时调用,在此可以执行初始化工作。

onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState): 创建Fragment的布局时调用。

onViewCreated():当 Fragment 的视图被创建后调用。在这个方法中,你可以执行与视图相关的逻辑,比如设置监听器、初始化数据等。
初始化视图内各个控件

onStart(): 当Fragment变为可见时调用。

onResume(): 当Fragment与用户交互时调用。

onPause(): 当Fragment不再与用户交互时调用。

onStop(): 当Fragment不再可见时调用。

onDestroyView(): 当Fragment的布局被移除时调用。

onDestroy(): 销毁Fragment时调用。

onDetach(): 当Fragment被从Activity移除时调用。

以下是一个简单的Fragment生命周期的代码示例:

public class MyFragment extends Fragment {
 
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        // Fragment已经和Activity关联
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Fragment创建
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // 创建Fragment的布局
        View rootView = inflater.inflate(R.layout.fragment_my, container, false);
        return rootView;
    }
 
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        // Activity创建完毕
    }
 
    @Override
    public void onStart() {
        super.onStart();
        // Fragment现在处于可见状态
    }
 
    @Override
    public void onResume() {
        super.onResume();
        // Fragment和用户可交互
    }
 
    @Override
    public void onPause() {
        super.onPause();
        // Fragment不再和用户交互
    }
 
    @Override
    public void onStop() {
        super.onStop();
        // Fragment不再可见
    }
 
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        // Fragment的布局被移除
    }
 
    @Override
    public void onDestroy() {
        super.onDestroy();
        // Fragment销毁
    }
 
    @Override
    public void onDetach() {
        super.onDetach();
        // Fragment和Activity解除关联
    }
}

在实际应用中,你可以重写这些方法来执行特定的操作,比如数据加载、资源释放、用户交互处理等。记得在重写这些方法时调用父类相应的方法,以确保生命周期方法能够正常执行。

你可能感兴趣的:(Android,项目开发笔记,android)