您的位置:首页 > 移动开发 > Android开发

Android四大组件之Activity

2015-11-04 22:06 381 查看
    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软件,就可以显示该文


   二、小结

	好久没写博客,感觉越来越懒了,每天学习的到的内容很多,但是都没有及时的做好总结,今天总结

     了一篇博客感觉对这块的知识很清晰了,而且通过查资料学习到了许多的新的东西

	最后一句话,博客很重要,坚持写,养成习惯!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 界面 filter