安卓生命周期

     安卓生命周期的理解

以页面跳转为例:

  在页面A加上一个按钮,然后给按钮添加一个监听器方法,点击此按钮,实现跳转到B页面。

每个activity都有它的生命周期:存在栈

     栈:先进后出(入栈,出栈)

就是说先存进去的最后出来,最后进去的先取出来,存储方式跟数组队列不一样

例中有两个activityAB,当启动程序时,首先会启动A,栈中先存入activity A,点击按钮后,会进入第二个页面B,栈中会存入activity B,如果再点击虚拟机上的返回键时,页面会重新回到页面A。那么栈中会发生什么呢、?栈中会把activityB移除出,再按一次返回键时,activity A也会被移出,此时,栈中已没有activity,那么进程呢?进程会不会停止?实际上,此时进程还是会存在的,这跟安卓手机上的很多应用相似,表面上你已经退出了,但是程序还在后台运行,长按home键就可以看到,就是说它的进程还在。所以说,栈中只是在管理activity,跟进程无关。

 安卓生命周期:  七个阶段:

   三个节点:运行,暂停停止,销毁

运行:

protected void onCreate(Bundle savedInstanceState);创建

      protected void onStart();启动

      protected void onResume();可以跟用户交互,此时的activity在栈的顶部,总是在暂停之后

暂停停止:

       protected void onPause();暂停

       protected void onStop();停止

protected void onRestart();重新启动

                          销毁:

       protected void onDestroy();销毁

运行程序的顺序:

刚开始运行时,第一阶段:运行—>执行了三个方法:

onCreate创建

    onStart启动

  onResume();可以跟用户交互,此时的activity在栈的顶部,总是在暂停之后

当点击按钮,进入B页面后,B activity在栈顶端了

第二阶段--执行了五个方法

A onPause();暂停

B onCreate创建

  onStart启动

  onResume();可以跟用户交互,

A onStop();停止

点击返回键后,页面重新跳转到A页面

第三阶段---执行了六个方法

B onPause();暂停

A onRestart();重新启动

onStart启动

  onResume();可以跟用户交互,

B onStop();停止,但不一定会销毁,如果内存不足了,页面就会被销毁

第三阶段

B onDestroy();销毁

 

Aactivity调用了finish方法,

那么在点击了按钮进入B页面后,

执行了A停止后,又执行了销毁方法,完成了A的生命周期

比如说在登陆以后就不再需要登录界面了,所以可以让它销毁

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值