2015-05-12 109 views
0

我正在學習android,並且我不太瞭解結構。使用'core'創建Android應用程序

我不得不使用HTTP從服務器加載大量數據,但我需要將數據傳遞給其他活動。我可以用Intent做到這一點,但我有大量的數據對象,似乎應該有一種方法來創建一個「主」類,其中包含所有其他類,新活動將能夠與「主'類,而不是將數據從一個活動傳遞到另一個活動,或者這是做這件事的正確方法嗎?謝謝。

基本上就是我想要做的是這樣的:

主類

class Core 
    { 
     public api; 
     public acconts; 
    } 

主要活動初始化核心類和調用數據加載功能。然後開始第二項活動。

第二項活動可以直接訪問Core.api和Core.accounts。

我該如何做到這一點?

回答

1

您可以創建類似,在您的項目類:

public class StorageManager 
{ 
    private static StorageManager sInstance; 
    private String mSomeData; 

    public static StorageManager getInstance() 
    { 
     if (sInstance == null) { 
      sInstance = new StorageManager(); 
     } 

     return sInstance; 
    } 

    private StorageManager() 
    { 

    } 

    public String getData() 
    { 
     return mSomeData; 
    } 

    public void setData(String data) 
    { 
     mSomeData = data; 
    } 
} 

「mSomeData」將包含你想活動之間傳遞數據。您也可以將字符串類型更改爲其他類型或添加更多數據字段。然後,在任何活動中,你可以這樣做:

StorageManager.getInstance().setData("data1"); 

String data = StorageManager.getInstance().getData(); 
+0

什麼是有一個單獨的類有什麼好處?難道你不能只說'靜態mSomeData'並調用'data = StorageManager.mSomeData'? – natario

+0

你可以但singleton類更清潔,你可以把它放在一個單獨的.java文件中,這樣很明顯這是一個獨立的功能,不與任何活動關聯,但任何活動都可以使用它。在將來,您還可以輕鬆地擴展此功能,例如添加更多方法,例如將數據保存到SD卡或從SD卡讀取數據。爲了可維護性和可擴展性的原因,我會使用這種模式。如果你開始在隨機的地方向你的代碼添加靜態變量,你的代碼將變得比理解所需的更難。 –

+0

如果需要一個靜態變量,那麼我只是將它隱藏在這樣的單例之後,並將與它相關的功能放在一個單獨的文件中。其餘的代碼不應該直接與靜態變量交互。在我看來,它使代碼更難理解,並且是錯誤的根源。 –

相關問題