Android生命周期(1) - Activity

来源:互联网 发布:淘宝取消订单有影响吗 编辑:程序博客网 时间:2024/06/05 20:19


       作为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();




0 0