編輯:關於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:
回到桌面:
回到應用:
退出應用:
我們在開發過程中,經常會遇到程序閃退,但是Eclipse的Consle和Logcat又沒有錯誤提示,或者是只有用的時間長了才會出現的偶然崩潰,這種就很難修復bug,也嚴重
我們使用社交軟件的過程中多多少少會為別人的帖子點贊,如圖 : 可以看到用戶頁面顯示出來的只是點了贊的用戶的名稱,點擊這些名稱可以進入到該用戶的主頁。我們就
榮耀8和榮耀v8有什麼不同?榮耀8發布後,和之前的發布的榮耀v8有什麼不一樣?相信很多人都有這樣的疑問,其實總的一句話就可以概括了:榮耀8主打小屏旗艦,榮耀
AsyncTask,是android提供的輕量級的異步類,可以直接繼承AsyncTask,在類中實現異步操作,並提供接口反饋當前異步執行的程度(可以通過接口實現UI進度更