Activity生命周期(一)

一、Android生命周期

public class Activity extends ApplicationContext {


     protected void onCreate(Bundle savedInstanceState);
     创建Activity时调用。注意这里的参数savedInstanceState,Bundle类型是一个键值对集合。由于前面已经说到的手机应用的特殊性,一个Activity很可能被强制交换到后台(交换到后台就是指该窗体不再对用户可见,但实际上又还是存在于某个 Task中的,比如一个新的Activity压入了当前的Task从而“遮盖”住了当前的 Activity,或者用户按了Home键回到桌面,又或者其他重要事件发生导致新的Activity出现在当前Activity之上,比如来电界面),而如果此后用户在一段时间内没有重新查看该窗体(Android通过长按Home键可以选择最近运行的6个程序,或者用户直接再次点击程序的运行图标,如果窗体所在的Task和进程没有被系统销毁,则不用重新加载Process, TaskTask中的Activity,直接重新显示Task顶部的Activity,这就称之为重新查看某个程序的窗体),该窗体连同其所在的 TaskProcess则可能已经被系统自动销毁了,此时如果再次查看该窗体,则要重新执行 onCreate事件初始化窗体。而这个时候我们可能希望用户继续上次打开该窗体时的操作状态进行操作,而不是一切从头开始。例如用户在编辑短信时突然来电,接完电话后用户又去做了一些其他的事情,比如保存来电号码到联系人,而没有立即回到短信编辑界面,导致了短信编辑界面被销毁,当用户重新进入短信程序时他可能希望继续上次的编辑。这种情况我们就可以覆写Activityvoid onSaveInstanceState(Bundle outState)事件,通过向outState中写入一些我们需要在窗体销毁前保存的状态或信息,这样在窗体重新执行onCreate的时候,则会通过 savedInstanceState将之前保存的信息传递进来,此时我们就可以有选择的利用这些信息来初始化窗体,而不是一切从头开始。


     protected void onStart();
     Activity被用户可见时调用


     protected void onRestart();
     重新启动Activity时调用,该活动仍在栈中,而不是启动新的活动

 

     protected void onResume();
     Activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用)


     protected void onPause();
     Activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的


     protected void onStop();
     Activity被停止并转为不可见状态及后续的生命周期事件时调用


     protected void onDestroy();

     Activity被完全从系统内存中移除时调用

}

 

二、举例说明

    在FirstActivity中定义一个文本和一个按钮,点击此按钮,跳转到SecondActivity。在DDMS中观察Activity方法执行的情况如下:

    刚启动时:

            The First Activity ---->onCreate

                     The First Activity ------>onStart

                     The First Activity ------>onResume

点击按钮,跳转到SecondActivity时:

                     The First Activity ---->onPause

                     The Second Activity ---->onCreate

                     The Second Activity ---->onStart

                     The Second Activity ---->onResume
                     The First Activity ---->onStop

点击返回到FirstActivity时:

                     The Second Activity ---->onPause

                     The First Activity ---->onRestart

                     The First Activity ---->onStart

                     The First Activity ---->onResume

                     The Second Activity ---->onStop

                     The Second Activity ---->onDestoy

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值