Android开发入门:四大组件之Activities

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 11:07 我要评论(0)

本文介绍了作为Android开发四大组件之一的Activity,从定义到如何创建,到生命周期的管理,是学习Android开发入门的好资料。

1、定义

Activity是为用户提供可视化界面并可以与用户交互的组件。

2、概述

应用程序通常是多个松散并相互绑定的Activity组成。一般,用户首次启动应用时,将启动一个被指定为main的Activity。每个 Activity都可以启动另一个Activity,以执行不同的动作。每次启动一个新的Activity,以前的Activity停止,但在系统堆栈保 留Activity( 回栈 )。一个新的Activity启动时,它将当前Activity压到栈里面并取得用户的焦点。回堆栈遵守基本的 后进先出的堆栈机制。当用户在当前Activity,按下返回按钮,则当前弹出堆栈(并销毁)和恢复以前的Activity。

Activity停止是因为一个新的Activity开始,通过活动的生命周期回调方法,通知这种状态发送变化。一个Activity可能会收到多 个回调 方法,当状态发生变化时.产生,停止,恢复,销毁,这些回调在适当的时机提供给您做相应工作的机会。例如,停止时,你的Activity应该释放大型对 象,如网络或数据库连接。恢复Activity时,你可以重新获得必要的资源和恢复被中断的Activity。这些状态转换是所有的Activity程序 周期的一部分。

3、创建Activity

a. 概述

要生成一个Activity,你必须生成一个Activity子类Activity(或已有的子类)。在你的子类中,创建,停止,恢复或销毁 Acitivty时,你需要实现回调方法,系统调用时,用这些方法在Activity生命周期的各种状态之间的转换。两个最重要的回调方法是:

onCreate():必须实现这个方法。生成Activity时系统调用。在你实现中,你应该初始化您的Activity中的组件。最重要的是, 这是你必须调用 setContentView() 定义Activity的用户界面的布局。

onPause():当用户离开你的Activity时候(尽管它并不总是意味着被销毁Activity),系统调用此方法。通常如果你需要保持当 前会话的话,你所有的改动都应在这提交(因为用户可能不返回)。

还有其他几个生命周期回调方法,你应该使用这些方法处理Activity与导致使Activity必须停止,甚至销毁的突发中断之间的事情,来提供 流畅的用户体验。所有的生命周期回调方法将在稍后讨论,在有关 管理Activity生命周期部分。

b. 实现用户界面

一个Activity的用户界面是由一组按层派生视图类-View的视图对象组成。每个视图控制Activity窗口的特定矩形空间,以响应用户交 互。例如,一个视图可能是一个按钮,当用户触摸它启动一个操作。

Android提供了一些现成的视图,你可以用它来设计和组织布局。 Widgets 就是视图-view,他提供一个可视的可交互的屏幕元 素,如按钮,文本字段,复选框,或只是一个图象。 布局 是从视图组-ViewGroup派生的,提供了对子视图特殊的布局模式,如线性布局,网格布局, 或相对布局的视图组。还可以继承视图类-View和视图组 - ViewGroup(或现有的子类)来创建自己的Widgets和布局,并将其应用到您的Activity布局中。

最常见的方式来定义一个布局,是一个XML布局文件保存您的应用程序资源。这种方式,你可以单独从源代码中维护你的用户界面设计以及定义 Activity 的行为。你可以通过setContentView()设置您的Activity的UI布局 ,传入布局的资源ID。或者,你也可以在Activity代码中生成新的视图-View,新建立一个视图 - View层次结构插入到视图组-ViewGroup ,然后传入根视图组-ViewGroup给setContentView()进行布局。

c. 在manifest文件中声明Activity

要在系统中使用Activity,您必须在manifest文件中声明您的Activity。打开你的manifest文件,并添加 <activity-element>>作为 <application><application> 元素一个子元素。例如:

<manifest ... >

<application ... >

<activity android:name=".ExampleActivity" />

...

</application ... >

...

</manifest >

在这个元素可以包含其他一些属性,包括定义属性,如Activity的标签,图标的Activity,或Activity的主题UI风格。 属性android:name 是唯一需要的属性,它指定Activity的类名。一旦你发布你的应用程序,你不应该改变这个名字,因为如果这样做,你可能会破坏一些功能,如应用程序的 快捷方式。

d. 使用intent过滤器

一个 <activity> 元素也可使用 <intent-filter>的元素指定的各种intent过滤器,以说明其他应用程序组件可以如何激活它。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...