Android のデータ ストレージに関する Google のページをご覧ください。
http://developer.android.com/guide/topics/data/data-storage.html
XML ファイルは非常に簡単な方法でダウンロードできます。あなたのような別の質問がここで尋ねられました:
Android でファイルをダウンロードし、ProgressDialog で進行状況を表示する
その例では、ファイルは SD カードに保存されます。リファレンス ページで説明されているように、SD カードを指す OutputStream を変更して、プライベート ストレージを指すようにしてください。
FileOutputStream fos = openFileOutput(your_xml_filename, Context.MODE_PRIVATE);
新しい XML への切り替えをできるだけ簡単にするために、XML 関連のすべての機能を 1 つのクラスにカプセル化し、新しい 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);
もう 1 つの方法は、同じオブジェクトを使用して、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 カードを変更した場合でも、更新されたデータはそのまま残ります。