碎片的生命周期



点击下载源代码

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

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窗体会显演示样例如以下内容:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemVuYWlsNTAxMTI5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

5、单击模拟器上的Homebutton,LogCat窗体中显演示样例如以下输出:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemVuYWlsNTAxMTI5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

6、在模拟器上长按Homebutton,再单击Fragments以启动应用程序,LogCat显演示样例如以下:

7、最后,单击模拟器中Backbutton,LogCat窗体显演示样例如以下输出:

8、由上面的实例可知。碎片经历的步骤例如以下:

碎片被创建时:onAttach()-->onCreate()-->onCreateView()-->onActivityCreated()。

碎片进入后台模式时:onPause()-->onStop()。

碎片变为可见时:onStart()-->onResume();

碎片被销毁时:onPause()-->onStop()-->onDestroyView()-->onDestroy()-->onDetach();

9、与活动一样,碎片能够使用Bundle对象在下面状态中还原碎片的实例:

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

Android学习笔记(十五)——碎片的生命周期(附源代码)的更多相关文章

  1. python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  2. 【转】 Pro Android学习笔记(五七):Preferences(1):ListPreference

    目录(?)[-] 例子1ListPreference小例子 定义一个preferences XML文件 继承PreferenceActivity 用户定制偏好的读取 第一次运行时设置缺省值 设置Cat ...

  3. 【转】 Pro Android学习笔记(五二):ActionBar(5):list模式

    可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner. list的样式和 ...

  4. 【转】 Pro Android学习笔记(五六):配置变化

    目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceS ...

  5. 【转】Pro Android学习笔记(五):了解Content Provider(上)

    Content Provider是抽象数据封装和数据访问机制,例如SQLite是Android设备带有的数据源,可以封装到一个content provider中.要通过content provider ...

  6. React学习笔记(五)State&声明周期

    React学习笔记(五) 四.State&声明周期 可以为组件添加"状态(state)".状态与属性相似,但是状态是私有的,完全受控于当前组件. 局部状态就是只能用于类(定 ...

  7. Android学习笔记(五)——活动的生命周期

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 为了能写出流畅连贯的程序,我们需要了解一下活动的生命周期. 一.返回栈 Android 中的活动是可以层叠的. ...

  8. android 学习随笔十五(Activity的生命周期与摧毁时返回数据 )

    1.Activity的生命周期 onCreate:创建时调用 onStart:在屏幕上可见,但是还没有获得焦点 onResume:可见并且获得焦点 onPause:可见,但是失去焦点 onStop:不 ...

  9. 【转】 Pro Android学习笔记(五十):ActionBar(3):搜索条

    目录(?)[-] ActionBar中的搜索条 通过Menu item上定义search view 进行Searchable的配置 在activity中将search view关联searchable ...

  10. Android学习笔记(五)Fragment简介

    Fragment是在Android 3.0 (API level 11)中引入的Activity的子模块.初衷是为了适应大屏幕的平板电脑,我们只需要使用Fragment对UI组件进行分组.模块化管理, ...

随机推荐

  1. Labview学习之远程控制VI

    Labview学习之远程控制VI        从LabVIEW 6.1开始,LabVIEW集成了Remote Panels技术,允许用户直接在客户端计算机上打开并操作位于服务器端计算机上的VI的前面 ...

  2. eclipse run on server 浏览器启动设置

  3. Android 仿360桌面小人

    首先自定义FloatsWindowView,用于显示动画小人. import android.annotation.SuppressLint; import android.content.Conte ...

  4. MySQL 基础学习

    http://www.w3school.com.cn/sql/ 1.limit x,y 或 limit z  :选取从x开始的y条数据  或  选取最开始的 z条数据 , 2.like '%N%' : ...

  5. 预处理指令中#Pragma

    在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的 ...

  6. Codeforces Round#344

    A题意思是,给出两个数列,求一个区间,使第一个数列的区间或和第二个数列的区间或的和最大,输出最大和 很显然,或运算会使得答案越运算越大.所以,直接全部或起来,相加就是答案. = =打cf的时候自动脑补 ...

  7. Michael Kors成了时尚行业的公敌-股票频道-和讯网

    Michael Kors成了时尚行业的公敌-股票频道-和讯网 Michael Kors成了时尚行业的公敌 字号   评论 邮件 纠错 2014年03月03日17:32 来源:财经天下    全球消费不 ...

  8. ExpandableListView(三)只展开一个group,没有child不展开group

    本文是自己在实践中,发现的问题. 有时候想让界面更加的人性化,就要实现很多的效果,比如只展开一个group,在点击下个group的同时,关闭之前的group 在一个ExpandableListView ...

  9. VS2015操作Oracle数据需要做那些设置?

    1>在oracle网上下载:ODP.NET 2> 要根据自己的oracle 数据32bit/64bit,选择下载. 3> 根据提示配置tnsnames.ora文件. # alias ...

  10. Clementine 12.0 的使用安装(数据挖掘)

    1.下载[统计数据挖掘工具].TLF-SOFT-SPSS_Clementine_v12.0-CYGiSO.bin 2.下载虚拟光驱安装软件 本人使用的是DTLite4402-0131. 3.如果需要汉 ...