2012-11-27 64 views
0

我有一些靜態xml數據,我想只讀一次並全局存儲。最初,我只是將活動中的文件讀取到Map中,但是,現在我需要訪問多個活動中的數據,因此我想避免從每個活動的文件中讀取它。全局存儲靜態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(),但編譯器不喜歡,我試圖讓從靜態方法這一呼籲。

任何想法的人?

回答

1

您應該在您的應用上擴展Application class。這是需要初始化的應用程序範圍資源的切入點。

Application.onCreate將是您的應用程序在用戶啓動您的應用程序時執行的第一件事。

由於應用程序擴展了上下文,因此您可以獲取任何可能需要初始化應用程序(資源,引用,系統服務等)的東西。

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