我已经阅读了一些关于如何使用/扩展Android Application
类的文章,但我仍然不确定是否可以根据自己的需要使用它。
在我的应用程序中,在启动时,我读了一个JSON配置文件。此配置文件包含有关外部设备的一些基本信息。因为我在其他几个片段/活动中需要这个信息,所以我只是将这个json文件的对象表示存储为我的Application
类的成员变量。
public App extends Application {
private ConfigurationContainer configuration;
...
getters / setters
}
当我需要时,我致电getApplication().getConfigurationContainer()
。
这可以满足我的需求吗?
答案 0 :(得分: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 :(得分:1)
是的,在Application类中存储全局范围的变量(或对象)是合理的。你应该小心,你没有在这里存储过多的数据,因为只要你的应用程序正在运行,它就会消耗永远无法恢复的内存。
您的概念很好,但是以这种方式使用Application类有一些细微差别,建议您创建一个Singleton类(由Application实例化)来存储这样的值。
以下是与此相关的优秀搜索引擎优化:Android Application as Singleton