Android---Activity初探

来源:互联网 发布:js string contains 编辑:程序博客网 时间:2024/05/16 10:10

刚开始学习android时候以为Activity就是一个应用,最后才发现它并不像brew那样,brew虽然也有组件的概念,可是并没有像android这么清晰,一个应用就是由多个组件组成。

Activity就是其中的一个组件,它是专门用来管理视图的,简单来说它就像我们window上的一个窗体,这个窗体里面又可以由多个控件组成,这些控件有button,image,text等,这些组件又是以怎么样的方式组织的呢,它有一个布局管理,就犹如一个container类似的东西对这些组件进行管理,这点和buiw中的管理很像,只是android可以用xml来布局,也可以通过代码来布局,在buiw只能通过代码实现。用xml实现当然是最简单的,但是也存在一个缺点,布局难免牵扯到坐标,坐标值用变量是最好的,但是在xml中不能使用代码中的一些变量,所有有点时候我们必须还要通过代码进行设置。在Activity的是这个视图里面各个控件的关系又是怎样的呢?我们可以用多叉树来描述,各个控件就像树上的叶子节点,各个非叶子节点就像是我们的android中的layout,跟就相当于我们的窗体了,这也就是android中说的groupview的概念了。

上面说了Activity的视图方面的东西,下来我们说一下Activity和应用的关系以及每个Activity之间的关系。我们可以打开任何一个Android应用的Manifest文件,会发现它里面会包含一个过多个Activity,那也就说明了一个应用里面可以包含多个Activity,一个应用中的各个界面都是由这些Activity来完成的。那这些Activity之间又有什么关系呢,从表面看是没有关系的,但是一个应用总有界面的迁移,这些界面的迁移总会遇到Activity之间的交互,android对Activity是通过栈进行管理的,遵循后进先出的规则,例如,Activity的启动顺序为A->B->C->D,则按back建时界面的显示顺序为D->C->B->A。Activity之间的交互通过Intent来完成,如果没有特别设置,这些Activity是运行在同一个线程里面的即MainThread。

Activity虽然只是一个界面但是它和brew的Applet有一些相似的特点,比如流程的转换以及事件处理的规则。Activity也有自己的生命周期,它的运行状态分为:Create,Start,Restart,Resume,Pause,Stop,Destroy几种状态,变迁图如下:


当前激活的Activity可以获取按键触摸等中断事件。处于其他状态的Activity是获取不到的。这个和brew对Applet的处理很类似。brew的Applet都有自己的上下文环境,在android里面的Acitivty同样也有上下文的概念。

原创粉丝点击