安卓四大组件之 Activity

    Activity是安卓提供给用户与手机之间可交互的界面组件,也是四大组件中比较重要的组件。他是通过一个窗口来描述界面视图的工具 

Activity从创建到生命结束,都有其独特的回调方法

Activity的生命周期:

onCreate、onStar、onResume、onRestart、onPause、onStop、onDestroy

Activity正常的生命周期一般情况下分为7种 :onCreate  onStar  onResume  onRestart  onPause  onStop onDestroy

在安卓官方的API上面详细介绍了各个回调的方法的回调时机

下面就简单概述下生命周期的回调方法

onCreate方法在调用构造方法之后 系统会自动调用这个方法,一般在此方法中初始化控件设置全局资源 设置全局控件 

在整个Avtivity的生命周期中,这个方法只会调用一次

在Activity的创建过程中除了调用onCreate 还会调用onStar  onResume 当这两个个方法调用完成之后,界面才会变成可交互的 Activity处于运行状态

onStar在Activity可见事就会调用这个方法 但是此时界面还不能交互

onResume 界面已经可见 而且可以和用户交互了 这时会调用这个方法

onResart在Activity从不可见状态到可见状态会调用这个方法  注意:在在Activity第一次创建的时候并不会走这个方法 只有在Activity从onStop状态下唤醒时才会调用这个方法

onPause  在界面即将不可见的时候会调用这个方法  Activity处于暂停状态 是界面即将不可将的时候调用 而onstar 是在界面即将可见的时候调用 

这个方法通常用来数据的持久化 和动画的终止 。

例:当Activity A 调用Activity B时 A的onPause方法就会被调用 之后B调用 onCreate onStar onRsume ,当A完全不可见识就是调用A的onStop方法  

请不要在A中的onPause方法中做耗时的操作

而且当系统的内存资源严重不足的时候,系统就会自动销毁处在onPause状态下的Activity以用来回收内存,所以onpause还是可以保证在Activity销毁之前一定会调用的声明方法

onStop 两种情况下会被调用 

1.当前的Activity被销毁时

2.有一个Activity完全挡住了当前的这个Activity

这个方法可以用来停止刷新界面的操作

当Activity处于onStop状态下 有可能会因为系统资源不足,而导致Activity被销毁 

但是有可能Activity声明处于onpause状态下,就被系统销毁,所以这个方法不一定能保证调用

onDestroy 

在Activity销毁之前会调用这个方法 

一般会用来释放资源

注意:在系统资源不足的情况下,会将已经调用的onpause·或onStop方法回收,所以这个方法也不能保证一定会被调用

onResart

当Activity从onStop状态从新回到运行状态时 ,会走这个方法

当然上述情况是在Activity正常情况下的声明周期,有正常情况肯定还会有异常的情况

异常情况下Activity的声明周期:

实际的开发中异常情况大致分为两种:

1.资源的相关配置,导致Activity被销毁后重建

2.系统内存不足,导致优先级低的Activity被销毁

异常情况:

屏幕旋转,Activity被强制销毁

屏幕旋转:每次旋转 Activity就会自动销毁 然后立即重新创建一个新的

为了不让其创建新的Activity有两种方案:

1.把方向写死,屏幕旋转 布局方向不变

  <activity

            android:name ="com.shengmingzhouqi.MainActivity"

            android:label ="@string/app_name"

            android:screenOrientation ="portrait"   <!--landscape水平  portrait竖直  -->

          >

2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,

只会执行onConfigurationChanged方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春哥一号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值