全局存储静态xml数据

时间:2012-11-27 17:15:55

标签: android xmlpullparser

我有一些静态xml数据,我想要读取一次并存储全局。最初我只是将活动中的文件读入Map,但是,我现在需要从多个活动中访问数据,所以我想避免从每个活动的文件中读取它。

我正在使用需要上下文的XmlPullParser。我的问题是我想将它存储到一个静态变量中,如此...

public static Map<String,String> myXmlData=getXmlData(???);

但我不知道如何以静态方式获取应用程序上下文。

public static Map<String, String> getXMLData(Context ctx){
    Map<String, String> data = new HashMap<String, String>();
    XmlPullParser parser = ctx.getResources().getXml(R.xml.mydata );
    ...

}

我尝试从上面的静态方法中删除ctx参数,并调用GetApplicationContext(),但编译器不喜欢我试图从静态方法调用该函数。

任何想法?

1 个答案:

答案 0 :(得分:1)

您应该延长应用中的Application class。这是需要初始化的应用程序范围资源的入口点。

Application.onCreate将是用户启动应用程序时首先执行的应用程序之一。

由于Application扩展了上下文,您可以获得初始化应用程序所需的任何内容(资源,引用,系统服务等)。

这是一个教程http://www.helloandroid.com/tutorials/maintaining-global-application-state