`
marine8888
  • 浏览: 544387 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android-------Activity之间通信

阅读更多

FROM:http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/index.html

Activity 之间通信

使用 Intent 通信

在 Android 中,不同的 Activity 实例可能运行在一个进程中,也可能运行在不同的进程中。因此我们需要一种特别的机制帮助我们在 Activity 之间传递消息。Android 中通过 Intent 对象来表示一条消息,一个 Intent 对象不仅包含有这个消息的目的地,还可以包含消息的内容,这好比一封 Email,其中不仅应该包含收件地址,还可以包含具体的内容。对于一个 Intent 对象,消息“目的地”是必须的,而内容则是可选项。

在上面的实例中通过 Activity. startActivity(intent)启动另外一个 Activity 的时候,我们在 Intent 类的构造器中指定了“收件人地址”。

如果我们想要给“收件人”Activity 说点什么的话,那么可以通过下面这封“e-mail”来将我们消息传递出去:

 Intent intent =new Intent(CurrentActivity.this,OtherActivity.class);
  // 创建一个带“收件人地址”的 email 
 Bundle bundle =new Bundle();// 创建 email 内容
 bundle.putBoolean("boolean_key", true);// 编写内容
 bundle.putString("string_key", "string_value"); 
 intent.putExtra("key", bundle);// 封装 email 
 startActivity(intent);// 启动新的 Activity 

那么“收件人”该如何收信呢?在 OtherActivity类的 onCreate()或者其它任何地方使用下面的代码就可以打开这封“e-mail”阅读其中的信息:

 Intent intent =getIntent();// 收取 email 
 Bundle bundle =intent.getBundleExtra("key");// 打开 email 
 bundle.getBoolean("boolean_key");// 读取内容
 bundle.getString("string_key"); 

上面我们通过 bundle对象来传递信息,bundle维护了一个 HashMap<String, Object>对象,将我们的数据存贮在这个 HashMap 中来进行传递。但是像上面这样的代码稍显复杂,因为 Intent 内部为我们准备好了一个 bundle,所以我们也可以使用这种更为简便的方法:

 Intent intent =new Intent(EX06.this,OtherActivity.class); 
 intent.putExtra("boolean_key", true); 
 intent.putExtra("string_key", "string_value"); 
 startActivity(intent); 

接收:

 Intent intent=getIntent(); 
 intent.getBooleanExtra("boolean_key",false); 
 intent.getStringExtra("string_key"); 

分享到:
评论

相关推荐

    spring-android-core-1.0.0.RELEASE-sources.jar

    4. **EventBus**:Spring for Android提供了一个事件总线,允许组件之间进行解耦的通信。这种设计模式可以帮助我们避免Activity和Fragment之间的直接调用,提升应用的结构清晰度。 5. **Android Context管理**:...

    android-sdk-sources-android-21.rar

    - 首先,开发者应熟悉 Android 开发的基本概念,如 Activity 生命周期、Intent 机制等。 - 接着,通过阅读 `frameworks/base` 下的源码,了解系统服务如何与应用程序交互。 - 然后,研究 `system/core`,理解 ...

    Android-nRF-Toolbox-master 源码

    1. `app`目录:这是Android应用的主要代码库,包含Activity、Service、BroadcastReceiver等核心组件。 2. `libs`目录:存放了项目所需的第三方库,如蓝牙通信库、固件升级库等。 3. `res`目录:包含了应用的资源文件...

    android支持包:android-support-v4

    `android-support-v4`库中的BroadcastReceiver和PendingIntent类提供了与原生API相匹配的功能,使得开发者能在低版本的Android上使用这些组件进行事件监听和跨组件通信。 **Preference支持** Preference类是用于...

    ANDROID-Activity--exit.zip_android

    在Android应用开发中,Activity是Android四大组件之一,它是...在实际开发中,我们还需要考虑如何优雅地管理Activity栈,处理Activity间的通信,以及优化BroadcastReceiver的性能,这些都是Android开发中的重要课题。

    Android-nRF-Toolbox-master

    在移动设备与物联网(IoT)领域,蓝牙低功耗(BLE,Bluetooth Low Energy)技术扮演着至关重要的角色,它使得智能设备之间的无线通信变得更加高效、节能。Nordic Semiconductor作为BLE芯片的领先制造商,提供了强大的...

    PDFium-Android-Demo

    4. **Activity和Fragment**:在Android应用中,PDF阅读功能可能被封装在一个Activity或Fragment中,这样可以方便地嵌入到应用的其他部分。用户界面设计通常包括翻页控件、缩放按钮、书签管理、搜索功能等。 5. **...

    Android-Activity之间数据传递的多种方式

    在Android应用开发中,Activity是用户界面的基本单元,它们之间的数据传递是十分常见的操作。本文将详细介绍Android中Activity之间数据传递的多种方式及其适用场景。 一、Intent传递数据 Intent是Android系统中...

    android-pluginmgrAndroid源代码

    5. **Intent路由(Intent Routing)**:为了实现插件中的Activity、Service等组件与主应用的无缝交互,android-pluginmgr提供了Intent的路由机制,使得主应用可以像调用本地组件一样调用插件组件。 6. **权限管理...

    Android-ActivityRouter路由框架通过注解实现URL打开Activity

    在Android应用开发中,路由框架是一个重要的组成部分,它负责应用程序内部不同组件间的通信,比如Activity之间的跳转。本文将深入探讨一个名为"Android-ActivityRouter"的路由框架,该框架利用注解技术来实现URL打开...

    Android-简化Android组件之间的共享字段和通信以及可识别生命周期的自定义范围

    为了解决这些问题,"Android-简化Android组件之间的共享字段和通信以及可识别生命周期的自定义范围" 提供了一种更优雅的解决方案。 首先,让我们关注组件间的共享字段和通信。在Android应用中,常见的数据共享方式...

    android-sdk-sources-android-19.rar

    2. **框架层**:这是Android系统的核心部分,包括各种服务和组件,如Activity Manager、Content Provider、Broadcast Receiver等。Android 19引入了对全屏模式的支持,使得应用能更好地适应无按钮的设备。源码中可以...

    android-cts-2.3_r13-linux_x86-arm.zip

    "Android CTS (Compatibility Test Suite) 是Android操作系统中一个至关重要的组成部分,主要目的是确保设备制造商推出的Android设备能够符合Google的兼容性标准,从而确保应用程序在不同设备上的运行一致性。...

    Android代码-Android_Learning_Notes

    2、Android02--认识Activity 3、Android03--Context和Application 4、Android04--Android服务 5、Android05--Android服务通信 6、Android06--Android广播接收器 7、Android07--Android日志系统 8、Android08--...

    android-sdk-windows.rar

    1. 平台工具:包括adb(Android Debug Bridge),用于与设备进行通信,执行安装、调试等任务;fastboot,用于启动模式下对设备进行低级操作;以及各种版本的平台工具,如dx、aapt等。 2. 构建工具:如Gradle插件,...

    Android-单个Activity多个Fragment实现微信Android客户端

    - Android官方推荐使用Navigation Component来管理Activity和Fragment之间的导航。它可以简化回退栈管理,提供图形化的导航图,并支持Deep Linking。 7. **数据持久化**: - 微信应用中涉及到大量用户数据的存储...

    starrtc-android-demo

    "starrtc-android-demo" 是一个专门为Android平台设计的开源项目,主要目标是提供一个实时通信(RTC,Real-Time Communication)的应用示例。这个项目可能是由StarRTC团队开发的,旨在帮助开发者理解和实现RTC功能,...

    Node.js-Android-BluetoothSPPLibrary开发者用它可以通过蓝牙与Android设备进行通信

    Node.js和Android之间的蓝牙通信是移动应用开发中的一个重要领域,特别是在物联网(IoT)和设备交互的场景下。本文将详细讲解如何使用`Android-BluetoothSPPLibrary`库,一个专为开发者设计的工具,通过蓝牙Serial ...

    Android app 使用android-serialport-api 实现串口通信 源码

    在Android平台上进行串口通信是开发物联网或者嵌入式设备应用时常见的需求。`android-serialport-api`是一个专门用于Android设备实现串口通信的开源库。本文将深入解析如何利用这个库在Android应用程序中实现串口...

    Android-1_0-CC

    - **Network**:网络功能,允许应用通过互联网进行通信。 - **Multimedia**:多媒体支持,包括音频、视频和图像处理。 - **GPS**:位置服务,用于获取设备的地理位置信息。 - **Phone Services**:电话服务,如拨打...

Global site tag (gtag.js) - Google Analytics