activity(界面),broadcast receiver(广播接受者),service(服务),content provider(内容提供者)称
为Android的四大组件,本文先介绍activity组件
一、简介
1.activity
用户接口程序,可以通俗的理解为界面,用来和用户进行交互的
首先要了解一下activity的声明周期,下面一张图可以很清晰的说明
oncreate:对activity进行初始化,加载一个布局文件,但是界面并没有显示出来
onstart:activity对于用户来说可见,但是处于失去焦点的状态,用户不可以操作界面
onresume:这时界面对于用户来说即可见又是可操作的
onpause:暂停状态,失去焦点状态,相当于视频播放器的暂停按钮
onstop:停止状态,用户在点击了返回键后,程序被其他activity覆盖,但还有进程的存在
onrestart:activity被停止后,重新被用户打开
ondestory:进程被释放,activity被彻底释放
2.activity开启
以上只是说到一个activity,那么怎么才能开启一个activity呢?我们用意图的方式开启activity
意图分为显示意图和隐式意图
显示意图:通过调用Intent的构造方法Intent(Context,Class)
Content为上下文,Class是要开启activity的.class字节码文件
从他的方法中就可以看出,此方法用于程序内容activity的开启
隐式意图:activity在创建时都会在清单文件中配置意图过滤器,此方法就是通过匹配要开启的
activity的意图来开启新的activity,就像是要开一把锁,必须要有匹配的要是才行
隐式意图可以调用其他应用程序的activity,像支付宝,还有一些分享的功能等都有用到
3.activity通信
开启activity就涉及到通信的问题了,通过Intent可以开启activity,那么也可以顺便把数据携带
到开启的activity中,即intent.putExtra(data);
4.activity的Intent Filter
意图过滤器,前边提到隐式意图中要用意图过滤器了,每个activity在创建的时候都需要配置清单文
件,也就是意图过滤器,而每个activity中Intent Filter的节点的配置又会有所不同,这样在代码
中配置不同的节点就可以打开不同的activity
5.栈式管理
前边全是关于activity的,有那么多的activity该怎么管理呢?Android中针对activity使用的是栈
当我们的手机打开很多个activity时就类似于下面这张图片
在某一时刻,只会有一个activity处于栈顶,只有当这个activity被销毁后其他的activity才有可
能显示出来,或者有新的activity后,当前activity会被压栈沉下去;只有当程序调用.finish()方
法相当于用户点击手机上的Back键,然后会有新的activity浮至栈顶处于激活状态
6.activity的加载模式
应用程序每次启动都会创建一个栈,栈中可以有多个activity
加载模式在清单文件的Intent Filter中配置属性 android:priority=""
standard:每次都会创建新的activity
singleTop:与standard不同的是,当activity处于栈顶时不会创建新的activity
singletask:当要开启的activity在任务栈中已经存在,那么直接复用,并且把其上边的activity全
部清空
singleInstance:类似于单例设计模式,activity被存放在一个单独的栈中,举个例子当用手机qq
打开一个文档,选择手机中的office打开,打开后按home键,直接打开office软件,就可以显示该文
档
二、小结
好久没写博客,感觉越来越懒了,每天学习的到的内容很多,但是都没有及时的做好总结,今天总结
了一篇博客感觉对这块的知识很清晰了,而且通过查资料学习到了许多的新的东西
最后一句话,博客很重要,坚持写,养成习惯!!