活动Activity
:
复写activity的声明周期方法,在 onCreate()
方法里添加fragment
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.linearlayout);
System.out.println("activity++++create");
FragmentManager supportFragmentManager = getSupportFragmentManager();
FragmentTransaction beginTransaction = supportFragmentManager.beginTransaction();
MyFragment myFragment = new MyFragment();
beginTransaction.replace(R.id.fl, myFragment);
beginTransaction.commit();
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
System.out.println("activity++++start");
super.onStart();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
System.out.println("activity++++resume");
super.onResume();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
System.out.println("activity++++pause");
super.onPause();
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
System.out.println("activity++++stop");
super.onStop();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
System.out.println("activity++++destroy");
super.onDestroy();
}
}
碎片fragment
:
复写fragment
的生命周期方法
public class MyFragment extends Fragment {
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
System.out.println("fragment----attach");
super.onAttach(activity);
}
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
System.out.println("fragment----create");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
System.out.println("fragment----createview");
View view = inflater.inflate(R.layout.activity_main, null);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
System.out.println("fragment----activitycreated");
}
@Override
public void onStart() {
// TODO Auto-generated method stub
System.out.println("fragment----start");
super.onStart();
}
@Override
public void onResume() {
// TODO Auto-generated method stub
System.out.println("fragment----resume");
super.onResume();
}
@Override
public void onPause() {
// TODO Auto-generated method stub
System.out.println("fragment----pause");
super.onPause();
}
@Override
public void onStop() {
// TODO Auto-generated method stub
System.out.println("fragment----stop");
super.onStop();
}
@Override
public void onDestroyView() {
// TODO Auto-generated method stub
System.out.println("fragment----destroyview");
super.onDestroyView();
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
System.out.println("fragment----destroy");
super.onDestroy();
}
@Override
public void onDetach() {
// TODO Auto-generated method stub
System.out.println("fragment----detach");
super.onDetach();
}
}
代码结果演示:
1. 开启activity
:
从结果可以看出,开启
activity
后,activity
和fragment
的方法执行顺序为:
Activity : onCreate();
Activity : onStart();
Fragment : onAttach();
Fragment : onCreate();
Fragment : onCreateView()
Fragment : onActivityCreated()
Fragment : onStart()
Activity : onResume()
Fragment : onResume()
2. Home键返回桌面
从结果可以看出,Home键退出
Activity
后,activity
和fragment
的方法执行顺序为:
Activity : onPause();
Fragment : onPause();
Activity : onStop();
Fragment : onStop();
3. 再次进入应用
从结果可以看出,Home键退出后再次进入
Activity
后,activity
和fragment
的方法执行顺序为:
Activity : onStart();
Fragment : onStart();
Activity : onResume();
Fragment : onResume();
4.返回键退出Activity
从结果可以看出,Home键退出后再次进入
Activity
后,activity
和fragment
的方法执行顺序为:
Activity : onPause();
Fragment : onPause();
Activity : onStop();
Fragment : onStop();
Activity : onDestroy();
Fragment : onDestroyView();
Fragment : onDestroy();
Fragment : onDetach();