标签:android session 数据传递 activity
Android中,Activity之间的数据传递有些复杂,比如通过Intent和Bundle等等,传递复杂对象时必须是实现了Serializable接口的类,这在很多时候使得处理页面间的数据传递很不方便。在JavaWeb中,Session对象传递数据很实用方便,对此,在Android中可不可以自己实现一个类似JavaWeb中的Session呢?
其实很简单,在不严谨的情况下,具体实现过程如下:
/*/////////////////////////////////////////////////////////////////
_ooOoo_
o8888888o
88" . "88
(| ^_^ |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . ___
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
========`-.____`-.___\_____/___.-`____.-'========
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 永无BUG
Code by duxu0711@163.com
////////////////////////////////////////////////////////////////*/
package cn.geekduxu.android;
import java.util.HashMap;
import java.util.Map;
/**
* 在Android中模拟JavaWeb的Session
* @author <a href="mailto://duxu0711@163.com">杜旭</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的效果,对于传递数据会方便很多。(示例中的代码并不严谨,在程序中使用的话需考虑异常等情况)标签:android session 数据传递 activity
原文地址:http://blog.csdn.net/duxu0711/article/details/38762485