Android开发中Activity之间的通信原理黄继红汪淼.docx

Android开发中Activity之间的通信原理黄继红汪淼.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

?

?

Android开发中Activity之间的通信原理黄继红汪淼

?

?

摘要:让Android应用程序中的Activity对象之间,以及应用程序之间实现功能上的协作,必须实现Activity对象之间的通信及应用程序之间的通信功能。Android是通过Intent技术实现以上功能,主要包括实现Activity对象之间的调用,数据的传递,数据的返回等功能。

关键词:ActivityIntent

1引言

在一个AndroidAPP中,可以有很多Activity对象,AndroidAPP通过这些Activity对象实现其功能。那么,在同一个AndroidAPP中或不同的AndroidAPP中,如何实现下列问题:

1通过一个Activity启动其他Activity?

1.1Activity之间如何传送数据?

1.2Activity之间如何返回数据?

上述三个问题是本文主要阐述的内容。

2主要类对象

2.1Activity对象

由Activity类的子类创建的对象称为Activity对象。Activity对象是AndroidAPP程序结构的主要组成部分。一个Android应用程序可以包含一个或多个Activity对象,但必须有一个Activity对象为主要的Activity对象,主要的Activity对象是Android应用程序运行的入口。Android应用程序中的一个Activity对象可以请求加载它包含的其他的Activity对象。需要在应用程序的配置文件中注册每个Activity对象,即配置一个activity标记,如此应用程序才可以使用这个Activity对象。

2.2Intent对象

Intent对象主要作用是封装意图和数据,程序寻找能够完成Intent对象封装的意图的Activity对象。如果只找到一个这样的Activty对象,就激活这个Activity对象;如果找到多个这样的Activity对象,就给出一个选择列表,让用户选择其中一个Activity对象,并激活所选择的Activity对象[1]。

3Activity之间的调用

实现Activity之间的调用,首先,创建Intent对象,构造方法Intent(Stringaction),参数action为动作类型。例如:Intentintent=newIntent(Intent.ACTION_DIAL);

其次,调用Activity的startActivity(Intentintent)方法,参数intent封装了意图和数据,程序将根据其意图找到所有的能实现该意图的Activity对象。

然后,配置配置文件,在配置文件AndroidManifest.xml中配置Activity的动作与范畴,例如,在配置文件中,注册的SubActivity对象配置的动作为android:name=android.intent.action.MAIN,配置的范畴为android:name=android.intent.category.LAUNCHER,android.intent.category.DEFAULT。

4Activity之间的数据传递和返回

Intent对象的封装的数据不是寻找Activity的条件,是传递给所找到的Activity对象的数据,被找到的Activity对象可以根据需要决定是否接收这些数据。

4.1Intent封装数据方式一

Intent对象intent使用putExtra方法添加附加的数据,并为这个附加数据指定一个String类型的检索关键字。例如,intent.putExtra(number1,125.12);被启动的Activity可以根据需要决定是否接收这些数据,获取方法是:

首先,得到启动当前Activity对象的Intent对象,Intentintent=getIntent();

其次,intent调用诸如getXXXExtra(关键字)的方法,通过关键字key得到想要的数据,例如,doublenumber1=intent.getDoubleExtra(“number1”,1.0);如果获取不到,就用默认值1.0。

4.2Intent封装数据方式二

Intent还可以使用Bundle类封装数据,具体使用步骤如下:

1)创建一个Boundle对象Bundlebundle=newBundle();bundle对象调用诸如putXXX(关键字key,数据data)的方法将数据data放入bundle对象中,并为该数据指定一个String类型的检索关键字。例如,bundle.putDouble(number1,10.01);

2)intent对象使用putExtras(Bundleextras)方法将bundle对象放入当前intent对象中,如,

文档评论(0)

158****4121 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档