我有一些静态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(),但编译器不喜欢我试图从静态方法调用该函数。
任何想法?
答案 0 :(得分:1)
您应该延长应用中的Application class。这是需要初始化的应用程序范围资源的入口点。
Application.onCreate将是用户启动应用程序时首先执行的应用程序之一。
由于Application扩展了上下文,您可以获得初始化应用程序所需的任何内容(资源,引用,系统服务等)。
这是一个教程http://www.helloandroid.com/tutorials/maintaining-global-application-state