关于Activity生命周期的理解

Android 是用过使用栈来管理活动的,所以最先显示的和销毁的是栈顶活动。所以当所写的Activity可见时,其必然处在栈顶。
    启动一个Activity最先调用的是 onCreate()方法,在该方法中会完成活动的初始化操作,比如加载布局,绑定事件等,不过尽量避免在该方法中做很多事,否则可能将导致程序启动很久都看不到界面。
    进行初始化之后,活动将由不可见变为可见,此时调用的是 onStart()方法,在每次Activity可见之前都会调用该方法。
不过onCreate()方法和onStart()方法很快都会被切换掉,因为在Activity中只有三个静态方法可以存在比较长时间,这三个方法就是接下来将会依次被调用的 onResume(),onPause(),onStop()。
    onResume()是当活动准备和用户交互时被调用的,这个时候活动肯定返回到栈顶,并处于运行状态(也被理解为"Running"状态)。
    onPause()是当系统准备去启动或则恢复另一个活动时调用的,此时不会再接受用户的输入且不执行任何代码,但是不代表后台线程不工作,活动处于半透明状态。为了切换得流畅,要在此方法中进行一些资源的关闭(例如关闭相机),但如果活动执行完onPause()还会执行onStop(),此时就不要在onPause()中执行太多操作而是改为在onStop()中去执行,并且在onStop()中的资源要在onStart()中恢复。
    执行onPause()时活动还是处于半透明状态的,当活动变为完全不可见时会调用onStop()方法,当启动的新活动是一个对话框时onPause()会被执行而onStop()不会被执行,在调用onStop()之前一定会调用onPause()
    调用onStop()之后活动会处于停止状态,但是即使进入了停止状态,系统会保存View对象的状态(比如EditText的文字)到一个Bundle中,并在用户返回这个Activity时恢复他们。
活动在被销毁前调用onDestroy(),在该方法要将在onCreate()中开启的后台进程杀死,避免资源泄露。
    onRestart()只有当活动被重新启动时才会调用该方法。
 下面图标可以帮助理解:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值