Fragment的生命周期和Activity的生命周期类似。Fragment的生命周期和他依附的Activity对应的。Fragment中
Resumed:当Fragment在他依附的Activity中可见是调用
Paused:当另外的Activity到前台、或者获得焦点是,此时Fragment依附的Activity可能仍然可见(例如可能是透明的。或者不是占用整个屏幕显示)
Stopped:当Fragment不可见时调用。此时对应的Activity也Stopped
1、下面是Fragment依附的Activity的生命周期代码
package com.example.fragment2_life;
import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("Activity>>onCreate");
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager
.beginTransaction();
MyFragment fragment = new MyFragment();
fragmentTransaction.add(R.id.ly_fragment_container, fragment,
"MyFragment");
fragmentTransaction.addToBackStack("MyFragment");
fragmentTransaction.commit();
}
});
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
System.out.println("Activity>>onStart");
};
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
System.out.println("Activity>>onResume");
};
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
System.out.println("Activity>>onPause");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
System.out.println("Activity>>onStop");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
System.out.println("Activity>>onDestroy");
}
}
2、Fragment生命周期代码
package com.example.fragment2_life;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class MyFragment extends Fragment {
/*
* 当此Fragment第一次被加到一个Activity时调用,onCreate在其后调用
*/
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
System.out.println("Fragment>>onAttach");
}
/*
* 初始化此Fragment,在这儿进行本地成员变量的初始化,onCreateView在其后调用
*/
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
System.out.println("Fragment>>onCreate");
}
/*
* 加载此Fragment的布局文件,
* 如果要是更新UI的操作,必须要在View view被加载成功,才能更新
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
System.out.println("Fragment>>onCreateView");
return inflater.inflate(R.layout.fg, null);
}
/*
* 当Fragment被创建,且Fragment里的View被加载,就调用此方法,
* 前四个方法对应Activity的Create状态
*/
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
System.out.println("Fragment>>onActivityCreated");
}
/*
* 启动此Fragment
*/
@Override
public void onStart() {
// TODO Auto-generated method stub
super.onStart();
System.out.println("Fragment>>onStart");
}
/*
* 当此Fragment可见时,并且对应的Activity在运行
*/
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
System.out.println("Fragment>>onResume");
}
/* Fragment不再可见,暂停
*/
@Override
public void onPause() {
// TODO Auto-generated method stub
super.onPause();
System.out.println("Fragment>>onPause");
}
/*
* Fragment停止,
*/
@Override
public void onStop() {
// TODO Auto-generated method stub
super.onStop();
System.out.println("Fragment>>onStop");
}
/*
* Fragment销毁里面的View,对应onCreateView方法
*/
@Override
public void onDestroyView() {
// TODO Auto-generated method stub
super.onDestroyView();
System.out.println("Fragment>>onDestroyView");
}
/*
* Fragment销毁
*/
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
System.out.println("Fragment>>onDestroy");
}
}