在Android中加载文件

在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

我有一个类(只是一个普通类),它保存我的应用程序使用的列表。这些列表从web刷新并作为XML文件存储在本地。获取列表的代码如下所示:

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”
。这样,您将始终拥有全局上下文,并且可以在任何地方使用它。

使用
应用程序
上下文。文件与应用程序关联,而不是
活动
谢谢,这非常有效!