android开发 Activity间消息的传递方式

<pre name="code" class="java">//MainActivity.java

				Intent intent = new Intent();
				Bundle bundle = new Bundle();

				bundle.putInt("data1", 10);
				bundle.putString("data2", "data");

				//从当前的MainActivity 切换到Activity2
				intent.setClass(MainActivity.this, Activity2.class);
				intent.putExtras(bundle);

				//开始执行切换
				this.startActivity(intent);
//Activity2.java

		Intent intent	= getIntent();
        //获取这个Intent对象的Extra中对应键的值

        int data1 		= intent.getExtras().getInt("data1");
        String data2 	= intent.getExtras().getString("data2");

1.startActivity方法跳转

上面一段代码生成一个Intent对象和一个Bundle对象

Intent对象是切换时 startActivity方法要用到的参数

而Bundle对象是存储发送给目标Activity2对象的键值对数据 该对象可以不设置

在Activity2中 用getIntent方法获得传递到的Intent对象 并获得键值对数据

2.startActivityForResult方法跳转

前面的startActivity方法 可以把数据从MainActivity 传递到 Activity2

如果想在Activity2执行完后 获得数据返回MainActivity

就得用到 startActivityForResult方法了

这个应用需求 最普遍的就是确定弹出框之类的界面

               <pre code_snippet_id="365302" snippet_file_name="blog_20140527_6_6440008" name="code" class="java">//MainActivity.java

Intent intent = new Intent(); intent.setClass(MainActivity.this, Activity2.class);

Bundle bundle = new Bundle();

bundle.putInt("data1", 10);

bundle.putString("data2", "data");

intent.putExtras(bundle);

startActivityForResult(intent, 0);


这里只有一个方法改变了 其他没有变化

Activity2 接收键值对也不需要改变

只在结束时 调用setResult

//Activity2.java

		Intent intent	= new Intent();
		intent.putExtra("res1", 1);
		intent.putExtra("res2", "res");
		//请求代码可以自己设置
		setResult(RESULT_OK, intent);

		//关闭掉这个Activity2
		finish();

在MainActivity 中重写onActivityResult方法

//MainActivity.java

	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);

		switch(resultCode){
			case RESULT_OK:
				String str1 = data.getStringExtra("res1");
				String str2 = data.getStringExtra("res2");
				finish();
				break;
			default:
				break;
		}//switch

	}//onActivityResult

android开发 Activity间消息的传递方式

时间: 2024-07-30 22:34:04

android开发 Activity间消息的传递方式的相关文章

android之activity间传输数据

MainActivity如下: package com.example.helloworld; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainA

Android开发--Activity生命周期回顾理解

Activity和Servlet一样,都用了回调机制.我们通过类比servlet来学习Activity.当一个servlet开发出来之后,该servlet运行于Web服务器中.服务器何时创建servlet的实例,何时调用servlet的方法向用户生成响应,程序员无法控制,这种回调由服务器自行决定.Activity也一样,被开发出来,开发者只要在AndroidManifest.xml文件配置该Activity即可.至于该Activity何时被实例化,它的方法何时被调用,对开发者来说完全是透明的.

android开发系列之消息机制

最近接触到一个比较有挑战性的项目,我发现里面使用大量的消息机制,现在这篇博客我想具体分析一下:android里面的消息到底是什么东西,消息机制到底有什么好处呢? 其实说到android消息机制,我们可能很快就会想到message/handle/looper这三个对象,没错在android里面就是通过此三个对象实现消息机制的.那么我想问的是,为什么我们需要消息机制呢?说到底就是为了更好.更流畅的用户体验,因为在app里面我们或多或少都有可能会设计到一些比较耗时的操作,这个时候如果我们只是一味的将当

android开发 - Activity生命周期

本章主讲Activity的生命周期 Activity整个生命周期有四种状态,7个方法,3个嵌套循环 状态: 1.  Activity/Running 活动状态 指的是当前用户正在交互的activity状态 2. Paused                  暂停状态 指的是当前activity可见,但是被吐司或者对话框遮罩时状态 3. Stopped                停止状态 指的是被新的创建的activity遮挡时的状态,它保留了之前的操作信息和状态,但是如果系统内存不够,可能

Android开发——Activity生命周期中的一些注意点

1. Activity的onDestory()在Activity关闭时一定会被调用吗? There are situations where the system will simply kill the activity's hosting process without calling this method (or any others) in it, so it should not be used to do things that are intended to remain aro

Android开发---Activity的LaunchMode,深入理解android任务栈

1,Standard: 1.标准模式,每次启动都会创建新的Activity,不论是否已经在任务栈内存在.一个任务栈中可以有多种实例,每个实例可以属于不同的任务栈.在此模式下谁启动了此Activity,那么当前的Activity就存在于启动它的Activity的任务栈内.例如A的任务栈为a,现在A启动B(Standard模式).那么此时的任务栈a中存在两个Activity实例,下图说明栈与activity的关系: 2.下面我们模拟上图过程.我们创建2个Activity,MainActivity为A

Android开发 Activity生命周期详解

前言 在一般情况下了解Activity的生命周期后,都很容易认为自己已经理解了生命周期.并且可能会觉得实际运用起来并不需要这么多的生命周期来处理activity.但是Activity的生命周期的设计理念远远不止是让你知道Activity是在创建还是前台还是在后台或者销毁这般简单.特别是在初始化与释放资源的这难点上,只有深入理解了Activity的生命周期才会让你不会出现各种资源提早释放导致空指针,资源释放失败导致内存泄露,反复初始化导致性能开销大的问题. 生命周期流程图 原文地址:https:/

推荐10款最常用的Android开发工具

推荐10款最常用的Android开发工具 我们使用各种语言进行开发时,总是会用到各种各样的开发工具.有些开发工具是开发人员的必备品,有些则是为了提高开发效率而用.Android开发同样也会用到多种开发工具,供开发人员设计.创建.测试和发布程序时使用.下面向大家推荐十款常用的Android开发工具. 1.Eclipse w/ADT 虽然Eclipse并非唯一可用于开发Android应用的Java开发环境,但它是目前最欢迎的工具,有很大程度上是因为它的成本很低(免费),但最主要的原因还是它与其他An

【Android开发那点破事】消息推送BroadcastReceiver,点击通知打开两次Activity问题

Android开发中,通常会使用BroadcastReceiver来接受Push推送消息.当APP收到推送通知时,我们需要在通知的点击事件中加入自己的逻辑.比如跳转到MainActivity.比如下面的代码(注意红色部分): public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); if (JPushInterface.ACTION_REGISTRATION_ID.equ