码迷,mamicode.com
首页 > 移动开发 > 详细

Android 第六课——Activity高级

时间:2015-01-02 23:47:44      阅读:414      评论:0      收藏:0      [点我收藏+]

标签:

?Activity 生命周期:

技术分享

生命周期7个方法的调用时机:

1)onCreate:第一次创建这个Activity时,也就是系统中没有缓存当前的Activity时,这个方法首先被调用。调用之后这个Activity就会被压入所谓的Android Task栈中缓存起来,下次用时出栈就可以。所以,为了更加节约资源,我们一般把Activity所对应的layout中拥有的组件首先使用private作为这个Activity的私有成员,然后在onCreate方法中初始化,这样只要在Activity创建的时候,初始化一次组件就够了。

2)onstart:当这个Activity成为用户可见状态时,也就是在手机界面上正确显示的时候这个方法会被调用。所以,如果一个Activity之前已经创建好了,下次再次调用时(比如返回按钮)就会从Task栈中获取直接返回给用户,那么就不会再调用onCreate了,而是先调用onRestart,然后等到用户可见状态时调用onStart。

3)onResume:当这个Activity成为用户可见状态而且用户可以获取焦点时,也就是在onStart之后,当这个视图可以与用户交互时这个方法会被调用。这个方法调用完成之后,整个Activity就是处于运行状态了。

4)onPause:当一个Activity正在使用,这时另一个Activity开始启动(比比如玩游戏的时候突然来电话)时,那么前面那个Activity会调用onPause方法,使这个Activity处于暂停状态。新的Activity如果第一次创建就会调用OnCreate否则调用onRestart。

5)onStop:当这个Activity被新的Activity完全遮住时,也就是新的Activity完全遮挡了这个Activity,那么这个Activity就会调用onStop方法。

6)onRestart:当这个Activity已经创建好缓存在Task栈中可以直接取出返回给客户时,这个方法就会被调用。也就是当这个Activity从Task栈中出栈的时候,这个方法会被调用。

7)onDestroy:如果在代码中显示调用了finish方法,或者系统资源不够用的时候,或者用户在当前Activity中按下了返回键时,这个方法就会被调用。这个方法被调用后,说明Task中没有这个Activity的缓存,那么下次启动这个Activity时就不是调用onReStart了而是调用onCreate从头开始。


Task概念:

1) A Task is a stack of activities

2)在应用程序启动时,第一个启动的Activity创建之后就会被压入Task栈中,紧接着如果这个时候又一个Activity被创建那么这个新的Activity又会被压入栈中,依次类推,Task栈就类似于Android系统的一个Activity换成机制。当我们点击返回按钮时,Task栈中的Activity会逐个弹出,如果这个Activity被finish了,那么这个Activity就不会缓存在Task栈中了,下次需要从新onCreate。



Android 第六课——Activity高级

标签:

原文地址:http://my.oschina.net/u/1989321/blog/363159

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!