本文记录:在开发中遇到生命周期的认识
Activity的生命周期:
fragment的生命周期:
一 创建
编号1 onAttach() : 和activity绑定
编号2 onCreate() : 创建fragment
编号3 onCreateView : 创建fragment的UI
编号4 onActivityCreated() : activity创建了
二 运行
编号5 onStart() : 可见
编号6 onResume() : 可见之后要与用户交互
编号7 onPause() : 不可见之前
编号8 onStop() : 不可见
三 销毁
编号9 onDestroyView: 销毁fragment的UI
编号10 onDestroy(): 销毁fragment
编号11 onDetach() : 和activity解绑
————————————————
发现没有onViewCreated这一项生命周期,但是经测试发现,生命周期的执行流程为:
onAttach->onCreate->onCreateView->onViewCreated->onActivityCreated->onStart
onViewCreated方法:做控件的初始化,比如获取控件ID
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.order_food_fragment_layout, container, false);
Log.e("=======onCreateView","onCreateView");
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Log.e("=========onViewCreated","onViewCreated");
textView = view.findViewById(R.id.food);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
Attach方法
作用:Activity和Fragment关联方法,在这个方法,fragment获取Activity的引用对象
例如:
private OnFragmentInteractionListener mListener;
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onFragmentInteraction(Uri uri);
}
————————————————