您的位置:首页 > 移动开发 > Android开发

Android生命周期(1) - Activity

2015-04-17 14:49 225 查看

作为Android程序员,我们都知道生命周期的重要性,so~~~,我也特别落俗套地整理一下思路,合理地使用生命周期可以使程序运行得更健康哦^_^。Ps:图片及相关资料来源于看的书和网络,在此做简单梳理,给自己和路过的小伙伴们参考~O(∩_∩)O

Activity生命周期





onCreate() 创建一个activity并且填充UI,获取Fragment的引用,启动服务和定时器等;
onRestoreInstanceState() 与onSave并不是生命周期函数,不会每次被调用,传入的bundle包中包含UI状态,与传入onCreate的一样;
onRestart() 除该activity第一次创建时,在每次调用onStart前都会被调用,顾可用此特性做些特殊处理;
onStart() 到onStop之间对用户可见但不具有焦点,可用来注册广播,或重新启动某些线程;
onResume() 到onPause之间activity处于活动状态(位于activity栈顶),需尽量使这期间的代码执行迅速,保证程序进行前后台切换的时候能够保持响应;
onSaveInstanceState() 默认会自动将UI的状态改变保存至InstanceState,此外可做些临时性数据的保存,如用户输入的值,成员变量的值,需要注意的是该函数不是每次被调用,当用户主动去销毁界面时不会调用,而例如按home键或者内存不足时则会调用;
onPause() 与onSave不同的是该函数可以保存一些持久性数据,例如保存至数据库或者文件中,但不可做耗时操作,以免阻塞UI线程;
onStop() 可以用来注销广播,暂停动画,线程,传感器监听器,GPS查找,service,定时器或其他更新UI界面的线程,以节约资源(CPU周期或网络带宽),在界面重新可见时,可在onStart(或onRestart)中重新启动这些线程;
onDestroy() 清理所有的资源,关闭数据库连接,网络连接,结束线程等。

PS:当重写这些回调方法时,应总是回调超类,例如:super.onCreate();



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: