2014-09-24 33 views
1

我已閱讀一些關於如何使用/擴展Android Application類的文章,但我仍然不確定是否可以將它用於我的需要。使用應用程序類來保存當前配置

在我的應用程序,在啓動時,我讀了一個JSON配置文件。此配置文件包含有關外部設備的一些基本信息。因爲我在其他幾個片段/活動中需要這些信息,我只需將此json文件的對象表示形式存儲爲我的Application類的成員變量。

public App extends Application { 

    private ConfigurationContainer configuration; 
    ... 

    getters/setters 
} 

當我需要它時,我打電話給getApplication().getConfigurationContainer()

這可以滿足我的需求嗎?

回答

1

是的,沒關係。 按照這個步驟。

1.Override onCreate()方法並加載此方法中的所有json配置。

  public App extends Application { 
      private ConfigurationContainer configuration; 
      public void onCreate(){ 
       super.onCreate(); 
        // load json configuration. 
       } 
      // getter setter 
      } 
  • 聲明此類在清單文件。

    <application android:name="com.packageName.App">. 
    
  • 在所有活動中都使用此配置。

    App ap = (App)getApplication(); 
    ConfigurationContainer conf = ap.getConfigurationContainer() 
    
  • 1

    是的,它是合理的全球範圍的存儲在你的應用程序類變量(或對象)。你應該小心不要在這裏存儲太多的數據,因爲只要你的應用程序正在運行,它會消耗永遠不會恢復的內存。

    你的概念很好,但是以這種方式使用Application類有一些細微差別,建議你創建一個Singleton類(由你的應用程序實例化)來存儲這樣的值。

    這是一個很棒的SO與此相關:Android Application as Singleton