4.1 什么是生命周期

想要真正地理解PhoneGap应用开发的内涵,首先需要理解什么是生命周期。这在字面上其实非常容易理解,一个应用从开始运行被手机加载到应用被退出之间的过程就称之为一个生命周期。为了使读者更容易理解,本节将以Android原生SDK中Activity类的生命周期结合Eclipse中的LogCat调试工具进行实战讲解。

4.1.1  Activity的生命周期

先仔细的观察图4-1的内容,这是谷歌官方给出的Activity生命周期流程图,它包括了一个安卓应用从被创建到结束时所经历的各种事件。下面是Activity生命周期中所经历的各个过程。

(1)启动Activity:系统将调用onCreate方法创建新的Activity对象,然后依次调用onStart方法和onResume方法使刚刚创建的Activity进入运行状态。

(2)暂停状态:当前的Activity被其他的Activity覆盖或手机锁屏,原Activity被放入后台,系统将调用onPause方法使Activity进入暂停状态。

(3)恢复状态:当处于暂停状态的Activity重新被运行时,系统将调用onResume方法使之重新回到运行状态。

(4)后台状态:当用户点击Home键返回主屏,Activity被保存在后台,系统将先调用onPause方法再调用onStop方法使Activity处于暂停状态。

(5)返回状态:当用户重新打开Activity时,系统会先调用onRestar方法再调用onStar方法,最后调用onResume方法使应用返回到运行状态。

(6)当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。

(7)用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

图4-1  Activity的生命周期

经过一番解释之后,相信读者已经能够看懂图4-1中的内容了,可是为什么要这样做呢?

众所周知,智能机相对于非智能手机的一个重要特点就在于,智能机具有“后台”,能同时运行多个程序。比如可以一边挂着QQ一边听音乐同时浏览微博中的内容,而这时如果有人打电话进来,手机能够自动切换志接电话的界面,而这一切都是通过生命周期来实现的。

清华大学出版社推出的《构建跨平台APP:Phonegap移动应用实战》是一本APP实战书,包含20多个APP实例和3个APP项目,还结合了HTML5移动开发。本书面向移动开发入门人员,低门槛,浅阅读,最适合移动APP创业小白。本次发布第3~5章作为读者学习的基础,有兴趣的欢迎购买本书!欢迎加群:348632872,向作者直接提问交流!

最新文章

  1. CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(3)线性渐变
  2. 数据结构与算法(1)支线任务8——Find Median from Data Stream
  3. Android定位方式和测试方法
  4. jsp 表单提交,服务器跳转方法 浏览器重定向 及 servlet映射时 路径问题
  5. eclipse生成jar包
  6. dubbo远程调试运行
  7. samba服务器与远程登录ssh
  8. HDU 1166 敌兵布阵 线段树的基本应用——动态区间和问题
  9. 求绝对值,hdu-2003
  10. Android - 自定义控件之圆形控件
  11. CodeForces - 1051D Bicolorings(DP)
  12. 专题8:javascript中事件
  13. php取余运算(%) 注意事项
  14. 拆分窗口QSplitter
  15. Github Issues
  16. CDH5上安装Hive,HBase,Impala,Spark等服务
  17. consul之:ACL配置使用
  18. django-salmonella的使用
  19. [原]F5负载均衡示例:轮寻
  20. 利用python 下paramiko模块无密码登录

热门文章

  1. Bootstrap 轻量级后台管理系统模板--ACE使用介绍
  2. PowerDesigner:导出SQL脚本以及问题解决
  3. java读取文件:二进制文件
  4. 1.11-1.12 Sqoop导入数据时两种增量方式导入及direct
  5. 【eclipse插件开发实战】Eclipse插件开发3——OSGi、RCP
  6. 3-1Java程序的执行流程
  7. dataTables使用ajax请求显示数据
  8. 删除多余的OracleOraDb11g_home1TNSListenerLISTENER1
  9. HDU - 2181 哈密顿绕行世界问题 dfs图的遍历
  10. IM 通讯录