Android数据传递方法

Android中,Activity之间的数据传递有些复杂,比如通过Intent和Bundle等等,传递复杂对象时必须是实现了Serializable接口的类,这在很多时候使得处理页面间的数据传递很不方便。在JavaWeb中,Session对象传递数据很实用方便,对此,在Android中可不可以自己实现一个类似JavaWeb中的Session呢?

其实很简单,在不严谨的情况下,具体实现过程如下:

/*/////////////////////////////////////////////////////////////////
                          _ooOoo_
                         o8888888o
                         88" . "88
                         (| ^_^ |)
                         O\  =  /O
                      ____/`---'\____
                    .'  \\|     |//  `.
                   /  \\|||  :  |||//  \
                  /  _||||| -:- |||||-  \
                  |   | \\\  -  /// |   |
                  | \_|  ''\---/''  |   |
                  \  .-\__  `-`  ___/-. /
                ___`. .'  /--.--\  `. . ___
              ."" '<  `.___\_<|>_/___.'  >'"".
            | | :  `- \`.;`\ _ /`;.`/ - ` : | |
            \  \ `-.   \_ __\ /__ _/   .-` /  /
      ========`-.____`-.___\_____/___.-`____.-'========
                           `=---='
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                     佛祖保佑    永无BUG
                   Code by [email protected]
////////////////////////////////////////////////////////////////*/

package cn.geekduxu.android;

import java.util.HashMap;
import java.util.Map;

/**
 * 在Android中模拟JavaWeb的Session
 * @author <a href="mailto://[email protected]">杜旭</a>
 */
public class Session {

	private static Session INSTANCE;

	private Map<String, Object> map;

	private Session(){
		map = new HashMap<String, Object>();
	}

	/**
	 * 获取Session对象
	 * @return Session对象的引用
	 */
	public static synchronized Session getSession(){
		if(null == INSTANCE){
			INSTANCE = new Session();
		}
		return INSTANCE;
	}

	/**
	 * 保存值到Session中
	 * @param key - 与指定值关联的键
	 * @param value - 与指定键关联的值
	 */
	public void put(String key, Object value){
		map.put(key, value);
	}

	/**
	 * 获取Session中保存的对象
	 * @param key 要返回其关联值的键
	 * @return 指定键所映射的值;如果不包含该键的映射关系,则返回null
	 */
	public Object get(String key){
		return map.get(key);
	}

	/**
	 * 从Session中移除一个对象
	 * @param key 要移除对象的键
	 * @return 删除的对象
	 */
	public Object remove(String key){
		return map.remove(key);
	}

	/**
	 * 清空Session
	 */
	public void clear(){
		map.clear();
	}
}

这样就可以在Android中简单模拟出JavaWeb中Session的效果,对于传递数据会方便很多。(示例中的代码并不严谨,在程序中使用的话需考虑异常等情况)

时间: 2024-08-09 22:02:33

Android数据传递方法的相关文章

【Android数据传递】全局变量的使用方法

[Android数据传递]全局变量的使用方法  印第安的老乔克 2013-02-18 21:36:14 android中Application是用来保存全局变量的,在package创建的时候就存在了,到所有的activity都被destroy掉之后才会被释放掉.所以当我们需要全局变量的时候只要在application中去实现,通过调用Context的getApplicationContext或者Activity的getApplication方法来获得一个Application对象,就可以设置或读

解析activity之间数据传递方法的详解

转自:http://www.jb51.net/article/37227.htm 本篇文章是对activity之间数据传递的方法进行了详细的分析介绍,需要的朋友参考下 1  基于消息的通信机制 Intent--------boudle,extra用这种简单的形式,一般而言传递一些简单的类型是比较容易的,如int.string等详细介绍下Intent机制Intent包含两部分:1 目的[action]-------要去到哪里去2 内容[category.data]----------路上带些什么,

activity之间的数据传递方法

1  基于消息的通信机制 Intent--------boudle,extra 用这种简单的形式,一般而言传递一些简单的类型是比较容易的,如int.string等 详细介绍下Intent机制 Intent包含两部分: 1 目的[action]-------要去到哪里去 2 内容[category.data]----------路上带些什么,区分性数据和内容性数据 简单数据传递: Intent intent = new Intent(LoginActivity.this, MainActivity

Android数据传递的五种方法汇总

Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起.它们各有利弊,有各自的应用场景. 我现在把它们集中到一个例子中展示,在例子中每一个按纽代表了一种实现方法. 1. 利用Intent对象携带简单数据 利用Intent的Extra部分来存储我们想要传递的数据,可以传送int, long, char等一些基础类型,对复杂的对象就无能为力了.         1.1 设置参数 [java] view plaincopy //传

asp网络编程:Web程序中网页间数据传递方法小结

我们总是会遇到这样的情况,需要将数值从一个网页传递到另一个网页.在这篇文章中,向你展示了几种从一个网页向另一个网页传递数值的几种方法.在此例子中,创建的网页由一个文本控件和几个按钮控件组成.在文本框中输入的数据通过被标识在按钮控件中的不同方法从一个网页传递到另一个网页. Response.Redirect 让我们首先看一看如何使用Response.Redirect方法传递数据.这是它们之中最简单的方法.在文本框中输入一些数据,并且当你输入完成数据后,按下“Respose.Redirect”按钮.

(Android数据传递)Service和Activity之间-- 借助BroadcastReceiver--的数据传递

实现逻辑如下: 左侧为Activity中的执行逻辑,右侧为Service中的执行逻辑: /** * <功能描述> Service和Activity之间的数据交互:具体表现为: 1. 从Service获取数据源,传递到Activity中: 2. * 在Activity中作数据更新: 3. Service中的onCreate()在UI线程中执行,作延时需要在子线程中执行: * * @author Administrator */ public class MainActivity extends

andriod的数据传递方法

在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理.这样的数据交流就要用到回调函数onActivityResult(). public class MainActivity extends Activity { public final int REQUESTCODE_FROM_MAIN_TO_OTHER = 1; public final int REQUES

两个页面之间的数据传递方法

1:通过URL传参(a页面<a href="b.html?n=zhangsan&p=123456">点击跳转到b页面</a>) b页面中的js代码:  function parseURL(url){    var url = url.split("?")[1];//分割字符串并取     console.log(url);    var para = url.split(/&|=/);    console.log(para)

Android 使用剪贴板传递简单数据及复杂数据的方法

传递数据的场景在于不同页面之间跳转,需要携带数据:简单数据值指的是String, int等数据, 复杂数据指的是类 1.   使用剪贴板传递简单数据方法: 第一个页面里面放数据操作如下: 1 ClipboardManager clipboardManager = (ClipboardManager); 2 getSystemService(Context.CLIPBOARD_SERVICE); 3 String text = "简单数据"; 4 clipboardManager.set