1.生命周期
Activity的生命周期如下图所示:
fragment的生命周期如下图所示:
Activity与Fragment的周期对比图如下所示:
2.Activity与Fragment的周期演示如下所示:
/** *本例用来显示Activity与Fragment的生命周期 */ public class MyFragment extends Activity { private static final String TAG ="MyFragment" @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e(TAG, "Activity的onCreate()函数"); // Create the list fragment and add it as our sole content. if (getFragmentManager().findFragmentById(android.R.id.content) == null) { ArrayListFragment list = new ArrayListFragment(); getFragmentManager().beginTransaction().add(android.R.id.content, list).commit(); } } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.e(TAG, "Activity的onStart()函数"); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.e(TAG, "Activity的onResume()函数"); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.e(TAG, "Activity的onStop()函数"); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.e(TAG, "Activity的onPause()函数"); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.e(TAG, "Activity的onDestroy()函数"); } public static class ArrayListFragment extends ListFragment { @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub Log.e(TAG, "MyFragment的onAttach()函数"); super.onAttach(activity); } @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub Log.e(TAG, "MyFragment的onCreate()函数"); super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub Log.e(TAG, "MyFragment的onCreateView()函数"); return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.e(TAG, "MyFragment的onActivityCreated()函数"); String[] array = new String[]{ "JAVA", "PYTHON","C#"}; setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, array)); } @Override public void onStart() { // TODO Auto-generated method stub Log.e(TAG, "MyFragment的onStart()函数"); super.onStart(); } @Override public void onResume() { Log.e(TAG, "MyFragment的onResume()函数"); // TODO Auto-generated method stub super.onResume(); } @Override public void onPause() { Log.e(TAG, "MyFragment的 onPause()函数"); // TODO Auto-generated method stub super.onPause(); } @Override public void onStop() { Log.e(TAG, "MyFragment的onStop()函数"); // TODO Auto-generated method stub super.onStop(); } @Override public void onDestroyView() { Log.e(TAG, "MyFragment的 onDestroyView..."); // TODO Auto-generated method stub super.onDestroyView(); } @Override public void onDestroy() { // TODO Auto-generated method stub Log.e(TAG, "MyFragment的onDestroy..."); super.onDestroy(); } @Override public void onDetach() { Log.e(TAG, "MyFragment的onDetach()"); // TODO Auto-generated method stub super.onDetach(); } @Override public void onListItemClick(ListView l, View v, int position, long id) { Log.i("FragmentList", "Item clicked: " + id); } } }Fragment是轻量级的Activity,在很多时候可以替代Activity的功能,方便使用,且不用再Manifest中注册。