android Activity生命周期

  次阅读 来源:互联网(转载协议) 2016-01-14 10:42 我要评论(0)

onCreate:Activity启动时调用的第一个方法。在此方法中有一个参数,即Bundle,在首次启动时,这个参数为null,当程序由于内存的原因而被杀掉的时候,如果用户在onSaveInstanceState方法中做了相应的状态保存的操作的话,那个当他再次重新启动的时候,这个Bundle就包含了先前在onSaveInstanceState方法中保存的状态信息,以便Activity回到先前的状态。

onStart:当用户对Activity可见时,此方法调用。

onResume:在此方法中主要用于接收Activity数据和进行一些列的初始化操作。当Activity到达栈顶的时候,即将成为前台进程时,此方法被调用,虽然这一个时刻Activity肯能还不为用户所见,但这里是获取资源的最佳场所。

onPause:当另一个Activity被移至栈顶的时候,当前Activity会收到它已在栈中被下移的通知,此时调用onPause方法。onPause方法是Activity在后台最后一次能够有机会进行清理工作、释放无需资源的地方。Activity的onPause方法必须要尽快的执行完成,因为前台的Activity必须要等到它执行完成之后返回后才能启动。当当前Activity失去焦点只有部分界面可见的时候,也会调用onPause方法。

onStop:当另一个Activity被恢复而完全遮住当前Activity界面的时候,onStop被调用。

onDestroy:Activity生命周期的最后一个方法,当调用finish方法或由于内存原因被系统杀死后会依次调用onPause——>onStop——>onDestroy方法,来结束Activity生命周期。

注意:可以根据isFinishing方法来判断是由于调用了finish方法而结束Activity还是由于内存原因被系统杀死的。

通过调用finish方法结束的Activity会从Activity栈中弹出,而由于系统内存原因结束的Activity不会从栈中弹出,依然会保留在栈中,因为在用户点击返回按钮的时候,它还 是有可能需要在恢复到前页面的。

为了避免Activity对象被销毁,应该尽可能的在onPause方法中释放尽可能多的资源,那么转入后台时被销毁的可能性就越低。

当Activity由于内存原因被销毁的时候,可以通过使用onSaveInstanceState方法将状态信心保存在一个Bundle对象中,当Activity恢复时此Bundle会做为参数传入到onCreate方法中,以便界面回复到之前的状态。

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...