Activity基础篇之生命周期以及启动和创建

Activity基础篇之生命周期以及启动和创建

Activity作为四大组件之首,是使用最频繁的一种组件。一个安卓应用要使用到界面,那么就必须要用到Activity。所以Activity的重要性就不言而喻了。这篇文章是第一篇关于Activity的文章,后面还会陆续写几篇关于Activity的文章,全部文章会贯穿整个Activity的启动到销毁、以及一些进阶的知识。

OK!我们言归正传,首先,我们来看一张经典的生命周期流程图:

生命周期

相信学习过Android开发的人都见过这样或者类似的图,也了解了Activity的生命周期的几个过程。那些没学习过android开发的或者刚学习的人也许会有点疑惑:生命周期是什么?生命周期就是Activity从产生到消亡的一个过程。就跟人一样有幼儿期、少年期、青年期、中年期、老年期一样。

Activity的生命周期有7个,其中有对应关系的有3对,分别是:onCreate和onDestroy、onStart和onStop、onResume和onPause,唯一没有对应关系的就是onRestart。Activity的生命周期是由系统调用的,不需要我们代码里主动去调用,所以当我们用Activity的时候只要重写那些生命周期的代码就行了。

接下来我们来解释一下上面那张图吧。分如下几种情况:

(1)第一次启动一个Activity的时候,回调过程:onCreate–>onStart–>onResume

(2)Activity启动后我们能操作Activity上面的组件了,然后再启动一个新的Activity或者按home键退到桌面,这个时候回调过程:onPause–>onStop。注意:还有一种特殊情况:如果Activity采用了透明主题,那么当前的Activity不会回调onStop。

(3)当用户再次回到Activity时回调如下:onRestart–>onStart–>onResume。

(4)当弹出一个对话框的时候回调如下:onPause;

(5)当对话框消失的时候回调如下:onResume;

(6)当用户按返回键的时候回调如下:onPause–>onStop–>onDestroy。

(7)当Activity处于后台的时候,系统回收内存把Activity销毁了的时候回调如下:onDestroy;(销毁之前还会调用其他回调,这个后面会详细说明)

(8)当Activity因为系统回收内存被销毁后,再次打开这个Activity,这时生命周期的回调过程和(1)是一样的,但是还会有其他回调方法(Java中是叫方法,C/C++是叫函数)也会在生命周期之间调用,这个也会再后面详细说明。

Activity的整个生命周期大概就是这样的。从上面可以看出:onCreate和onDestroy是配对的,而且仅调用一次。其他的根据显示、隐藏调用的次数不定。从生命周期的名字来看onStart和onStop是一对的,代表了开始和停止,但是生命周期还有onResume和onPause这两个,感觉onStart和onStop没有什么用,完全可以被后面两个来代替,谷歌为什么要写这个两个生命周期呢?或者前面两个和后面两个有什么区别呢?其实,从使用中来说,这两个是没有什么区别的。但是从上面的分析我们知道:onStart和onStop是根据可见性来回调的,而onResume和onPause是从前台和后台来回调的,其他的基本毫无区别。

好了,Activity的生命周期大体上就是这样的,作为一个android开发者对于Activity的生命周期必须熟悉和熟练使用的。那我们怎样启动一个Activity呢?大致上分为3步就可以启动一个Activity了。

1、首先创建一个Activity类,这个类集成系统的Activity类,并且在onCreate方法里设置布局以及初始化一些组件和数据。

2、在Mainfest文件里的application节点下配置一个Activity,如何配置可以参考eclipse或者as自动生成的一个activity属性,只要把intent-filter这个属性删掉,然后把name属性改一下就可以了。

3、在你需要启动地方通过Context.startActivity(intent);来启动这个activity就行了。注意:这里的Context不可以使用ApplicationContext,只能使用Activity类型的Context,至于为什么后面会详细的讲一下。

以上就是Activity的启动和创建,当然,这只是基本的启动和创建而已,系统级别的以后会再写一篇文章讲述的。

好了,Activity基础篇之生命周期以及启动和创建就讲到这里了,还有什么不明白的可以在下面留言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值