A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

IOSisGod

初级黑马

  • 黑马币:0

  • 帖子:5

  • 精华:0

8黑马币
请详细所以下Android的Activity的声明周期是怎么样的,什么时候结束,什么时候开始。谢谢

最佳答案

查看完整内容

1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。 2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。 3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。 4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进 ...

3 个回复

倒序浏览
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。
但是知道这些还不够,我们必须亲自试验一下才能深刻体会,融会贯通。
下面我们就结合实例,来演示一下生命周期的几个过程的详细情况。我们新建一个名为lifecycle的项目,创建一个名为LifeCycleActivity的Activity
回复 使用道具 举报
一个Activity本质上只有三种状态:
Resumed(运行)、Paused(暂停)、Stopped(停止),因为从Activity被创建之后,它只可能在这三种状态保持长久的停留,其他的回调方法结束后的状态都只能称之为过渡状态。比如进入到onStart方法后,执行完该方法,会立即进入到OnResume方法。(这里所说的状态都是指对应的某个方法返回之后)

即使一个Activity进入到Paused或者Stopped方法,它仍然是存在的,被保存在任务返回堆栈中。它仍然保持着自身的所有实例和状态,所以根本不用担心它在返回到onResume方法时,实例会变为null,或者控件的事件监听不了(我以前就担心过这个问题)。唯一需要考虑的就是,系统在内存不足的情况下,杀死在Paused或者Stopped状态下的Activity。
当一个Activity在Resumed状态下,它是不会因内存不够而被系统直接杀死(在极端的情况下也有可能被杀死,但是一般不会考虑这种情况)。只有进入Paused或者Stopped状态才会,而且可能根本就不会去调用onStop()和onDestory()方法,所以onPause()方法是我们最大程度上保证Activity在销毁之前能够执行到的方法。因此,如果你的某个Activity需要保存某些数据到数据库,您应该在onPause()里编写持久化数据的代码。但要注意,你应该选择哪些信息必须保留在onPause(),因为这个方法任何阻塞程序都会阻止过渡到下一个Activity,这样给用户体验就感觉十分缓慢。
回复 使用道具 举报
姚先生 发表于 2014-10-10 18:01
1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状 ...

谢谢回答,谢谢。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马