Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習筆記(十五)——碎片的生命周期(附源碼)

Android學習筆記(十五)——碎片的生命周期(附源碼)

編輯:關於Android編程

碎片的生命周期


點擊下載源碼


與活動類似,碎片具有自己的生命周期。理解了碎片的生命周期後,我們可以在碎片被銷毀時正確地保存其實例,在碎片被重建時將其還原到前一個狀態。


1、使用上一篇的項目Fragments,在Fragment1.java文件中添加如下代碼:

package net.zenail.Fragments;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Fragment1 extends Fragment {
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		Log.d("Fragment 1", "onCreateView");
		// 實例化布局文件
		return inflater.inflate(R.layout.fragment1, container, false);
	}

	@Override
	public void onAttach(Activity activity) {
		// TODO Auto-generated method stub
		super.onAttach(activity);
		Log.d("Fragment 1", "onAttach");
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		Log.d("Fragment 1", "onCreate");
	}

	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onActivityCreated(savedInstanceState);
		Log.d("Fragment 1", "onActivityCreated");
	}

	@Override
	public void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
		Log.d("Fragment 1", "onStart");
	}

	@Override
	public void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		Log.d("Fragment 1", "onResume");
	}

	@Override
	public void onPause() {
		super.onPause();
		Log.d("Fragment 1", "onPause");
	};

	public void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		Log.d("Fragment 1", "onStop");
	}

	@Override
	public void onDestroyView() {
		// TODO Auto-generated method stub
		super.onDestroyView();
		Log.d("Fragment 1", "onDestroyView");
	}

	@Override
	public void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		Log.d("Fragment 1", "onDestroy");
	}

	@Override
	public void onDetach() {
		// TODO Auto-generated method stub
		super.onDetach();
		Log.d("Fragment 1", "onDetach");
	}
}

2、按Ctrl+F11,將Android模擬器切換到橫向模式;

3、在Eclipse中按下F11鍵,在模擬器上調試應用程序;

4、當應用程序加載到模擬器中後,LogCat窗口會顯示如下內容:

\

5、單擊模擬器上的Home按鈕,LogCat窗口中顯示如下輸出:

\

6、在模擬器上長按Home按鈕,再單擊Fragments以啟動應用程序,LogCat顯示如下:

\

7、最後,單擊模擬器中Back按鈕,LogCat窗口顯示如下輸出:


8、由上面的實例可知,碎片經歷的過程如下:

碎片被創建時:onAttach()-->onCreate()-->onCreateView()-->onActivityCreated();

碎片進入後台模式時:onPause()-->onStop();

碎片變為可見時:onStart()-->onResume();

碎片被銷毀時:onPause()-->onStop()-->onDestroyView()-->onDestroy()-->onDetach();

9、與活動一樣,碎片可以使用Bundle對象在以下狀態中還原碎片的實例:

onCreate()、onCreateView()、onActivityCreated()。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved