Android基础--Activity生命周期

Activity生命周期

参考文献:http://blog.csdn.net/liuhe688/article/details/6733407

返回栈

Activity 是可以进行叠加的,我们没开启一个新的活动,就会覆盖在原活动上,然后点击返回键会返回到最上面的活动,会将栈的最顶端移除(返回栈中的Activity的顺序永远都不会发生改变,我们只能向栈顶添加Activity,或者将栈顶的Activity移除掉,栈是一种先进先出的数据结构)

活动状态

每个活动在其声明周期中最多会有四个状态:

  • 运行状态
    当一个活动处于栈顶的时候,这时就是运行状态

  • 暂停状态
    当活动不在栈顶位置的时候,但是仍然可以可见,这样就进入暂停状态

  • 停止状态
    当活动不在处于栈顶位置,并且完全不可见的时候就进入到停止状态

    • 停止状态
      当一个活动从返回栈中移除后变为了销毁状态

活动的生存期

activity中定义了七个方法形成了activity的生命周期

  1. onCreate()
    在活动第一次创建的时候进行调用,在这个方法中完成活动的出事化
  2. onStart()
    活动由可见变为不可见的时候进行调用
  3. onResume()
  4. onPause()
  5. onStop()
  6. onDestory()
  7. onRestart()
    生命周期图表
    这里写图片描述

    1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。

2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。

3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。

4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。

5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。

7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

但是知道这些还不够,我们必须亲自试验一下才能深刻体会,融会贯通。

我通过俩个activity之间的跳转来进行查看活动的生命周期
MainActivity.java

“`
public class MainActivity extends Activity {

@Bind(R.id.go)
Button go;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    Log.d("1234","第一个页面的onCreate方法");
}

public MainActivity() {
    super();
}

@Override
protected void onDestroy() {
    super.onDestroy();
    Log.d("1234","第一个页面的onDestory方法");
}

@Override
protected void onStop() {
    super.onStop();
    Log.d("1234","第一个页面的onStop方法");
}

@Override
protected void onRestart() {
    super.onRestart();
    Log.d("1234","第一个页面的onRestart方法");
}

@Override
protected void onPause() {
    super.onPause();
    Log.d("1234","第一个页面的onPause方法");
}

@Override
protected void onResume() {
    super.onResume();
    Log.d("1234","第一个页面的onResume方法");
}

/**
 * 显示跳转
 */
@OnClick(R.id.go)
public void onClick() {
    Intent intent=new Intent(this,SecondActivity.class);
    startActivity(intent);//开启新一个活动

}

}
一次运行程序,会出现一下的结果:
第一打开软件:
开始
让程序进入后台:
进入后台
再次进入到程序
再次进入到程序
杀死程序
杀死程序
以上展示了这七个方法,表示了活动的生命周期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值