2014-11-25 35 views
0
I hope that we can pass data between android application components 

通過以下方式。我們可以通過多種方式在android中的活動之間傳遞數據(對象)?

1。能使用意圖對象傳遞數據,

2.我們可以實現串行化的,parcelable接口並通過使用意圖傳遞對象,

3,我們可以創建通過擴展應用程序類的新類,從任何地方

的Android應用程序訪問全局成員,

4.sharedpreference,

5.sqlite。

是否有任何其他機制在android應用程序組件之間發送數據?

+1

另一種方式進行說明[這裏] [1] [1]:http://stackoverflow.com/questions/27033320/what-is-the-correct-way-to-share-數據不同的活動 - 或片段之間-/ 27033432#27033432 – 2014-11-25 10:01:18

回答

2

另一種選擇是創建ApplicationPool。

遵循以下步驟: - 啓動ApplicationPool: -

ApplicationPool pool = ApplicationPool.getInstance(); 

修改詳情頁上的數據,並添加到池

pool.put("key", object); 

從池

得到列表頁面上修改的數據
Object object = (Object) pool.get("key"); 

重要注意事項: - 通知listview或gri獲取數據

ApplicationPool類文件

public class ApplicationPool { 

    private static ApplicationPool instance; 
    private HashMap<String, Object> pool; 

    private ApplicationPool() { 
     pool = new HashMap<String, Object>(); 
    } 

    public static ApplicationPool getInstance() { 

     if (instance == null) { 
      instance = new ApplicationPool(); 

     } 

     return instance; 
    } 

    public void clearCollectionPool() { 
     pool.clear(); 
    } 

    public void put(String key, Object value) { 
     pool.put(key, value); 
    } 

    public Object get(String key) { 
     return pool.get(key); 
    } 

    public void removeObject(String key) { 

     if ((pool.get(key)) != null) 
      pool.remove(key); 

    } 
} 
1

1)在WeakReferences的HashMap的,例如:

DataHolder.getInstance().save(someId, someObject); 

從啓動的活動:

DataHolder.getInstance().retrieve(someId); 

2)或奇怪的方法

public class DataHolder { 
    Map<String, WeakReference<Object>> data = new HashMap<String, WeakReference<Object>>(); 

    void save(String id, Object object) { 
    data.put(id, new WeakReference<Object>(object)); 
    } 

    Object retrieve(String id) { 
    WeakReference<Object> objectWeakReference = data.get(id); 
    return objectWeakReference.get(); 
    } 
} 

開展活動之前:將數據存儲在服務器上O_o

2

另一種方式後DVIEW是使用靜態元素,羯羊它是:

  • 靜態字段(例如公共接入)
  • 靜屬性(意思是帶有吸氣劑和/或吸附劑的私人領域)
  • 單身人士
  • 可能嵌套類

儘管在OOP中使用靜態變量是有爭議的,但它們引入了全局狀態,因此也是實現活動間數據共享的一種方法。