使用Application类来保存当前配置

时间:2014-09-24 12:03:02

标签: android

我已经阅读了一些关于如何使用/扩展Android Application类的文章,但我仍然不确定是否可以根据自己的需要使用它。

在我的应用程序中,在启动时,我读了一个JSON配置文件。此配置文件包含有关外部设备的一些基本信息。因为我在其他几个片段/活动中需要这个信息,所以我只是将这个json文件的对象表示存储为我的Application类的成员变量。

public App extends Application {

   private ConfigurationContainer configuration;
   ...

   getters / setters
}

当我需要时,我致电getApplication().getConfigurationContainer()

这可以满足我的需求吗?

2 个答案:

答案 0 :(得分:1)

是的,没关系。    请按照以下步骤操作。

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

          public App extends Application {
          private ConfigurationContainer configuration;
          public void onCreate(){
                 super.onCreate();
                  // load json configuration.
               }
             // getter setter
             }
  1. 在清单文件中声明此类。

      <application android:name="com.packageName.App">.
    
  2. 在您的所有活动中使用此配置。

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

答案 1 :(得分:1)

是的,在Application类中存储全局范围的变量(或对象)是合理的。你应该小心,你没有在这里存储过多的数据,因为只要你的应用程序正在运行,它就会消耗永远无法恢复的内存。

您的概念很好,但是以这种方式使用Application类有一些细微差别,建议您创建一个Singleton类(由Application实例化)来存储这样的值。

以下是与此相关的优秀搜索引擎优化:Android Application as Singleton