看看谷歌的網頁關於Android上的數據存儲。 http://developer.android.com/guide/topics/data/data-storage.html
您可以下載一個非常簡單的問題的XML文件。像你這樣的另一個問題是在這裏問:
Download a file with Android, and showing the progress in a ProgressDialog
在這個例子中,該文件被保存到SD卡。請務必改變指向SD卡OutputStream的,所以它指向私有存儲設備,如引用頁面描述:
FileOutputStream fos = openFileOutput(your_xml_filename, Context.MODE_PRIVATE);
要切換到新的XML儘可能簡單,我會將所有與XML相關的功能封裝在一個類中,並提供切換到新XML的簡單方法。例如,
class XMLUser {
private Location someLocation;
public XMLUser(String pathToXml) {
readxmlAndSetLocations(pathToXml);
}
}
然後,當您需要更改XML文件時,您將初始化新的XMLUser對象。像這樣:
XMLUser xmlStuff = new XMLUser(PATH_TO_RES_FILE);
//... do something with it
//... update found
XMLUser xmlStuff = new XMLUser(PATH_TO_PRIVATEDATA_FILE);
另一種方法是使用相同的對象,只是更新XML文件中的位置:
class XMLUser {
private Location someLocation;
public void updateLocations(String pathToXml) {
//Read your xml here and update the locations accordingly.
}
}
例如
XMLUser xmlStuff = new XMLUser(PATH_TO_RES_FILE);
//... do something with it
//... update found
xmlStuff.updateLocations(PATH_TO_UPDATED_XML);
您的問題允許各種各樣的答案,所以我不能給出一個快速和準確的答案。
是的,我建議將XML數據保存到內部存儲。 XML文件的大小應該足夠小以免造成問題,並且在邏輯上它與應用程序的內部功能有關。用戶不應該篡改。另外,內部存儲器不可移動,所以如果用戶更改SD卡,更新後的數據仍然存在。
您是否考慮過使用SQLite?它比xml文件快得多。您可以先檢查數據庫是否爲空,然後將xml數據放在那裏(如果存在),然後從服務器下載其餘數據並在每次需要時更新它。 – 2012-04-20 10:11:01