0

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

我正在使用需要上下文的 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() 但编译器不喜欢我试图从静态方法进行调用。

有什么想法吗?

4

1 回答 1

1

您应该在您的应用程序上扩展Application 类。这是需要初始化的应用范围资源的入口点。

Application.onCreate 将是用户启动应用程序时要执行的应用程序的第一件事。

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

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

于 2012-11-27T17:17:53.383 回答