Android-Activity生命周期

Activity的生命周期方法:

第一次运行程序时调用的生命周期方法为:

        onCreate()— onStart()—onResume()

退出程序时调用的生命周期方法为:

        onPause()—onStop()—onDestory()。

onCreate创建与onDestroy销毁

onStart(界面可见)与onStop(界面不可见)

onResume可编辑(即获得焦点,可以与用户交互)与onPause不可编辑(界面可见,但失去焦点,不可与用户交互)


onCreate():

  • 加载UI
  • 不要做阻塞主线程(UI线程)的任何事情,可以用子线程来做启动时需要的费时操作。
  • 尽量少做动画
  • 对于布局比较复杂的时候,可以考虑不要一次性全部加载上,动态加载是一个好的办法
  • 子类在重写onCreate()方法的时候必须调用父类的onCreate()方法,即super.onCreate(),否则会抛出异常。

onPause()

停止动画或者是其他正在运行的操作;提交在用户离开时期待保存的内容(例如邮件草稿);释放系统资源,例如broadcast receivers, sensors (比如GPS), 或者是其他任何会影响到电量的资源。

onResume()

实现onResume()来初始化那些在onPause方法里面释放掉的组件,并执行那些activity每次进入Resumed state都需要的初始化动作

onStart()

作为onStop()所对应方法,在onStop里面做了哪些释放资源的操作,就该在onStart里面把那些资源重新创建出来。

onStop()

极端情况下,系统会直接杀死我们的app进程,并不执行activityonDestroy()回调方法, 因此可以使用onStop()来释放所有activity占有的资源,从而避免内存泄漏。

一个app可能有多个Activity

App进程死亡,则app占用的所有资源都会被释放


手机横竖屏切换:

系统会根据AndroidManifest.xml文件中ActivityconfigChanges属性值的不同而调用相应的生命周期方法。

没有设置configChanges属性的值时:

        当由竖屏切换横屏时,调用的方法依次是onPause()、onStop()onDestory()onCreate()、          onStart()onResume()的方法。

设置configChanges属性

        打开程序时同样会调用onCreate()— onStart()—onResume()方法,但是当进行横竖屏切换时          不会再执行其他的生命周期方法。

        <activity android:name=".MainActivity" 

                        android:configChanges="orientation|keyboardHidden">

如果希望某一个界面一直处于竖屏或者横屏状态,不随手机的晃动而改变,可以在清单文件中通过设置ActivityscreenOrientation属性完成

        竖屏:android:screenOrientation="portrait"

        横屏:android:screenOrientation="landscape"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值