安卓学习140501:组件——Activities与Intents

Activity是应用程序中最重要的组件之一。它与显示界面相对应。用户可以只通过activity与安卓应用程序交互。一个应用程序可能包含一个或多个activity,每个activity允许 用户执行特定的任务。为了保证模块化,每个activity只执行一个任务。

    用户利用activity执行一个特定任务的意向来初始化。这些意向在安卓框架下就是intent。intent是对要执行的操作的抽象描述,它通过一种被动的数据结构把延迟运行时绑定在不同组件间。

    安卓保存着从intent到activity、创建与给定的intent对应的正确的activity的映射。对于某些intent,可能需要不止一个activity执行任务。在这种情况下,安卓提供了一个activity列表供用户选择。

    一个复杂的任务可能涉及多个activity,在这种情况下,这些activity被保存在一个activity堆栈中。

   以一个电子邮件的发送为例说明。

   1. 用户在操作界面上按下“生成电子邮件”按键。

    2. 代码把用户生成电子邮件的意向绑定到一个intent对象上,并把这个intent传递给安卓系统框架。

    3. 安卓系统检查注册信息,并把满足这个intent的activity取出来,然后在activity栈顶上添加一个新的activity。接下来运行时,这个activity就会占据整个界面。

    4. 用户按下“选择收信人”按键。用户的意向被intent对象检测到,然后安卓系统框架再次检查注册信息并开始运行与联系人列表对应的activity。

    5. 用户从通讯录中选择一个或多个收信人,然后选择“完成”按键。activity以默认的方式把用户选择项返回给安卓系统框架,然后这个activity把自己从activity堆栈中删除,同时使前一个activity可见。

    6. 一旦收到从安卓系统框架中的结果,与生成电子邮件对应的activity把从收信人列表中选择的收信人填入用户界面中。

    7. 在邮件内容书写完成后,用户点击“发送”按键,发送电子邮件。

    8. 与“生成电子邮件”对应的activity把自己从activity堆栈中删除,界面上展现用户进行生成电子邮件前的操作界面

    一个应用程序可以使用其他应用程序的activity。在一个工作流当中,应用程序可以使用其他应用程序的activity,也可以使用平台的activity。例如,如果要从通讯录中选择一个联系人,应用程序可以使用平台中已经提供的activity,而不用自己再创建。这种activity的使用机制提高了平台上activity的重用性和一致性。

    activity是为用户交互操作而设计的,当activity不再对用户可见时,安卓可能在任何时候暂停这些activity来释放内存资源。因此,activity对于一个需要较长时间才能完成的任务来说并不是一个好的选择,如从internet上下载文件。安卓框架另外提供了service组件来完成类似任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值