Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 超靈巧Android數據傳遞方法

超靈巧Android數據傳遞方法

編輯:關於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 杜旭
 */
public class Session {

	private static Session INSTANCE;
	
	private Map map;
	
	private Session(){
		map = new HashMap();
	}
	
	/**
	 * 獲取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的效果,對於傳遞數據會方便很多。(示例中的代碼並不嚴謹,在程序中使用的話需考慮異常等情況)

  1. 上一頁:
  2. 下一頁:
Copyright © Android教程網 All Rights Reserved