Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android之fragment生命周期解析

Android之fragment生命周期解析

編輯:關於Android編程

上篇講到了Fragment的基礎應用,現在給大家演示一下Fragment的生命周期是什麼樣子的。關於Fragemnt的基礎應用,請見http://blog.csdn.net/jiapeng2b/article/details/46919859。

一、首先,我們先看一下Fragment的生命周期
這裡寫圖片描述
跟Activity生命周期的對比
這裡寫圖片描述

Activity直接影響它所包含的fragment的生命周期,所以對activity的某個生命周期方法的調用也會產生對fragment相同方法的調用。例如:當activity的onPause()方法被調用時,它所包含的所有的fragment們的onPause()方法都會被調用。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPkZyYWdtZW50schhY3Rpdml0ebu50qq24LP2vLi49sn6w/zW3Mbau9i197e9t6ijrNXi0Km27s3itcS3vbeoysfOqsHL0+thY3Rpdml0ebXEvbu7pbb4yejBoqOsyOfPwqO6PC9wPg0KPHA+b25BdHRhY2goKTwvcD4NCjxwcmUgY2xhc3M9"brush:java;"> 當fragment被加入到activity時調用(在這個方法中可以獲得所在的activity)。

onCreateView()

當activity要得到fragment的layout時,調用此方法,fragment在其中創建自己的layout(界面)。

onActivityCreated()

當activity的onCreated()方法返回後調用此方法。

onDestroyView()

當fragment的layout被銷毀時被調用。

onDetach()

當fragment被從activity中刪掉時被調用。

一旦activity進入resumed狀態(也就是running狀態),你就可以自由地添加和刪除fragment了。因此,只有當activity在resumed狀態時,fragment的生命周期才能獨立的運轉,其它時候是依賴於activity的生命周期變化的

二、測試用的代碼(這裡就簡單實現一下,打印出來)

package com.jp.fragment;

import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.framentdemo.R;


public class Fragmentdemo extends Fragment {
    /**
     * 當fragment被加入到activity時調用(在這個方法中可以獲得所在的activity)。
     */
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        System.out.println(Fragment————onAttach());
    }
    /**
     * 當activity要得到fragment的layout時,調用此方法,fragment在其中創建自己的layout(界面)。
     */
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        System.out.println(Fragment————());
        return inflater.inflate(R.layout.title_frament, container, false);

    }
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        System.out.println(Fragment————onCreate());
    }

    /**
     * 當activity的onCreated()方法返回後調用此方法。
     */
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        System.out.println(Fragment————onActivityCreated());
    }
    /**
     * 
     */
    public void onStart() {
        super.onStart();
        System.out.println(Fragment————onStart());
    }

    /**
     * 
     */
    public void onResume() {
        super.onResume();
        System.out.println(Fragment————onResume());
    }

    public void onPause() {
        super.onPause();
        System.out.println(Fragment————onPause());
    }

    public void onStop() {
        super.onStop();
        System.out.println(Fragment————onStop());
    }

    /**
     * 當fragment的layout被銷毀時被調用。
     */
    public void onDestroyView() {
        super.onDestroyView();
        System.out.println(Fragment————onDestroyView());
    }

    public void onDestroy() {
        super.onDestroy();
        System.out.println(Fragment————onDestroy());
    }

    /**
     * 當fragment被從activity中刪掉時被調用。
     */
    public void onDetach() {
        super.onDetach();
        System.out.println(Fragment————onDetach());
    }

}

三、場景演示

場景演示 : 切換到該Fragment

這裡寫圖片描述

切換到其他Fragment:

這裡寫圖片描述

切換回本身的Fragment:

這裡寫圖片描述

回到桌面:

這裡寫圖片描述

回到應用:

這裡寫圖片描述

退出應用:

這裡寫圖片描述

 

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