我开发了一个Android应用程序(对我而言)它太丑了,我很确定我的方法是非常错误的。
我有一堆片段活动和许多类,如异步任务,业务规则等。特别是,我有一个名为PropertiesReader的类,我用它来读取属性文件。我在很多地方使用这个类,比如片段和业务规则。
public class PropertyReader {
private Properties properties;
public PropertyReader(Context context){
super();
try {
properties = new Properties();
properties.load(context.getResources().getAssets().open("badass.properties"));
} catch (IOException e){
Log.e("Error", "Error opening properties file", e);
}
}
public String getValue(String key){
return properties.getProperty(key);
}
}
在我使用这门课的每个地方,我都会这样做:
PropertyReader bla = new PropertyReader(this); //or new PropertyReader(context);
我想知道处理需要构建Context的类的最佳方法是什么。在我看来,每个构造函数都有一个Context参数非常难看。
有什么想法吗?
提前感谢。
答案 0 :(得分:5)
创建一个单例,并在创建时保存应用程序上下文。
它看起来像这样:
public class PropertyReader {
private static PropertyReader ourInstance = new PropertyReader();
private Context mContext;
public static PropertyReader getInstance() {
return ourInstance;
}
private PropertyReader() {
}
public void loadProperties(Context context) {
mContext = context;
try {
properties = new Properties();
properties.load(context.getResources().getAssets().open("badass.properties"));
} catch (IOException e){
Log.e("Error", "Error opening properties file", e);
}
}
}
当您启动应用程序时,您可以执行以下操作:
PropertyReader.getInstance().loadProperties(getApplicationContext());
然后你可以在其他地方访问你的PropertyReader:
PropertyReader.getInstance().getValue(key);