在Android中加载文件
我有一个类(只是一个普通类),它保存我的应用程序使用的列表。这些列表从web刷新并作为XML文件存储在本地。获取列表的代码如下所示:在Android中加载文件,android,file-io,Android,File Io,我有一个类(只是一个普通类),它保存我的应用程序使用的列表。这些列表从web刷新并作为XML文件存储在本地。获取列表的代码如下所示: private static List<String> list1; public static List<String> getList1() { if (list1 == null) { //load it try { FileInputStream fis = open
private static List<String> list1;
public static List<String> getList1() {
if (list1 == null) {
//load it
try {
FileInputStream fis = openFileInput(FILE_NAME);
//do stuff with the file here...
} catch (FileNotFoundException e) {
//if the file is missing load it from the web
}
}
return list1;
}
私有静态列表列表1;
公共静态列表getList1(){
if(list1==null){
//加载它
试一试{
FileInputStream fis=openFileInput(文件名);
//在这里处理文件。。。
}catch(filenotfounde异常){
//如果文件丢失,请从web加载它
}
}
返回列表1;
}
所以这个方法将返回list对象,如果它不存在,它将从本地文件加载它,如果它不存在,它将从web加载它。但我的问题是,
openFileInput()
在我的类中无法解决,因为它只是一个普通类,需要从上下文中调用。最好的方法是什么?使用上下文作为getList1()
的参数?但这不可能在任何地方都实现,因为它在各种类中都被调用…我使用一个新的类应用程序解决了这个问题:
public class App extends Application {
public static Context context;
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
}
}
并通过在android清单中添加android:name=“path.to.App”
。这样,您将始终拥有全局上下文,并且可以在任何地方使用它。使用应用程序上下文。文件与应用程序关联,而不是活动
谢谢,这非常有效!