Android 四大组件学习之Activity生命周期

今天是第一次在CSDN上发表自己的博客。有点小小的激动,写的不好的地方希望大家多见谅,有不对的地方请大家及时纠正,感激不尽。

1、首先来看看activity的由来:

activity继承自ApplicationContext,并定义了一些方法如下:

 

public class Activity extends ApplicationContext {

         protected void onCreate(Bundle savedInstanceState);

         protected void onStart();

         protected void OnRestart();

         protected void onResume();

         protected void onPause();

         protected void onStop();

         protected void onDestroy();

}

 

 

2、现在来讲解单个activity的生命周期及各个阶段函数的作用。

1onCreate函数:如右图当Activity首次被加载或者Activity被销毁后(onStop后),便会调用onCreate函数。主要是做一些初始化的工作,如通过findViewById获取对应的控件和相应的监听事件。

    2onStart函数:执行完onCreate函数后,接下俩便是onStart函数的调用;还有一种情况就是当activity已经被执行了onStop函数后(窗体和进程没有被销毁),会调用onRestartonStart函数,进入可视状态。

3onResume函数:这个函数就是就是将activity位于栈顶,用户便可以与之交互,对界面进行操作了,进入可操作状态。

4onPause函数:当调用另外一个activity或者当前的activity失去焦点的时候调用onpause函数。当前的activity依然可见,但是不能对其进行操作,进入不可操作但是可视状态,可回收。

5onstop函数:当前的activity如果完全不可见了,便会调用onstop函数,进入不可视状态,可回收。

6onDestroy函数:当activity被系统回收掉或者主动finish掉,便会调用ondestroy进行销毁。

3、activity的三个基本状态

1、激活状态或者可操作状态:在这个状态下activity呈现在用户面前,用户可以对它进行操作,比如点击按钮等等。

2、暂停状态:这个时候activity依然可见,但是失去了焦点。如应用程序退出的时候弹出那个提示框(焦点所在),activity的界面做了背景(不能操作)。

3、停止状态:这是活动完全被其他的activity遮盖,用户不可见了。但它任然保留所有的状态和成员信息。

注意:在暂停和停止状态的时候,当内存非常低的时候可能会将这个activity杀掉。

4、对activity四种情况下的响应流程

1、返回键:进入activity  onCreate->onStart->onResume ->按了返回键->onPause->onStop->onDestroy.

2、启动程序进入activity,按home键进入桌面,然后长按home键点击该activity重新进入这个activity

onCreate->onStart->onResume->按了home->onPause->onStop->重新进入activity->onRestart->onStart->onResume.

3、启动程序,进入activity,然后按挂机键,进入锁屏,然后按挂机键重新进入activity

onCreate->onStart->onResume ->按了挂机键->onPause->按了挂机键->onResume.  

4、两个activity ABB采用dialog来作为界面,属性如下:android:style/ Theme.DialogA跳转到B,再从B跳转到A。流程如下:

onCreate->onStart->onResume ->进入activity2->onPause->退回到activity1->onResume.

5、打开程序,启动activity,点击按钮弹出alertDialog对话框,按返回键。

onCreate->onStart->onResume---------alertDialogactivity本身的一部分,对activity的生命周期没有影响。

6、当activity处于可回收状态时(onpauseonstop),系统由于内存不足,系统杀死该activity,程序就异常退出,

在这里就有个问题给大家一起讨论下,从onstop()到ondestroy()的条件是finish()掉或者系统回收activity。当内存不足的时候会kill掉这个activity,这两个方式有什么不同??第二种方式是否会继续调用下面的函数如ondestroy()呢?两种方式分别在什么时候释放资源呢?知道请和我一起交流下.....

5、各个运行转台的转换图 

希望这个图能让大家更加明白整个流程。

 其中,onSaveInstanceState()函数是用来保存当前activity的一些配置信息,如按钮的状态等,

同时我们在这里可以看到当内存不足,activitykill掉的时候,会调用destroy函数。但是这个图的来源是百度得到的,所以上面提到的问题还是希望知道的朋友能够告诉我,谢谢。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值