Fragments碎片的生命周期

转:http://blog.youkuaiyun.com/zenail501129/article/details/25651509

与活动类似,碎片具有自己的生命周期。理解了碎片的生命周期后,我们可以在碎片被销毁时正确地保存其实例,在碎片被重建时将其还原到前一个状态。


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

[java]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. package net.zenail.Fragments;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.support.v4.app.Fragment;  
  6. import android.util.Log;  
  7. import android.view.LayoutInflater;  
  8. import android.view.View;  
  9. import android.view.ViewGroup;  
  10.   
  11. public class Fragment1 extends Fragment {  
  12.     @Override  
  13.     public View onCreateView(LayoutInflater inflater, ViewGroup container,  
  14.             Bundle savedInstanceState) {  
  15.         // TODO Auto-generated method stub  
  16.         Log.d("Fragment 1""onCreateView");  
  17.         // 实例化布局文件  
  18.         return inflater.inflate(R.layout.fragment1, container, false);  
  19.     }  
  20.   
  21.     @Override  
  22.     public void onAttach(Activity activity) {  
  23.         // TODO Auto-generated method stub  
  24.         super.onAttach(activity);  
  25.         Log.d("Fragment 1""onAttach");  
  26.     }  
  27.   
  28.     @Override  
  29.     public void onCreate(Bundle savedInstanceState) {  
  30.         // TODO Auto-generated method stub  
  31.         super.onCreate(savedInstanceState);  
  32.         Log.d("Fragment 1""onCreate");  
  33.     }  
  34.   
  35.     @Override  
  36.     public void onActivityCreated(Bundle savedInstanceState) {  
  37.         // TODO Auto-generated method stub  
  38.         super.onActivityCreated(savedInstanceState);  
  39.         Log.d("Fragment 1""onActivityCreated");  
  40.     }  
  41.   
  42.     @Override  
  43.     public void onStart() {  
  44.         // TODO Auto-generated method stub  
  45.         super.onStart();  
  46.         Log.d("Fragment 1""onStart");  
  47.     }  
  48.   
  49.     @Override  
  50.     public void onResume() {  
  51.         // TODO Auto-generated method stub  
  52.         super.onResume();  
  53.         Log.d("Fragment 1""onResume");  
  54.     }  
  55.   
  56.     @Override  
  57.     public void onPause() {  
  58.         super.onPause();  
  59.         Log.d("Fragment 1""onPause");  
  60.     };  
  61.   
  62.     public void onStop() {  
  63.         // TODO Auto-generated method stub  
  64.         super.onStop();  
  65.         Log.d("Fragment 1""onStop");  
  66.     }  
  67.   
  68.     @Override  
  69.     public void onDestroyView() {  
  70.         // TODO Auto-generated method stub  
  71.         super.onDestroyView();  
  72.         Log.d("Fragment 1""onDestroyView");  
  73.     }  
  74.   
  75.     @Override  
  76.     public void onDestroy() {  
  77.         // TODO Auto-generated method stub  
  78.         super.onDestroy();  
  79.         Log.d("Fragment 1""onDestroy");  
  80.     }  
  81.   
  82.     @Override  
  83.     public void onDetach() {  
  84.         // TODO Auto-generated method stub  
  85.         super.onDetach();  
  86.         Log.d("Fragment 1""onDetach");  
  87.     }  
  88. }  

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()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值