Ten problem nie jest specyficzny dla Androida. Chodzi mi o to, że jeśli wiesz, jak serializować dane za pośrednictwem java.io.Serializable lub masz niestandardowy format utrwalania, po prostu musisz wiedzieć, gdzie go przechowywać.
Można chwycić plik na urządzeniu lokalnym poprzez
FileOutputStream stream = null;
try{
stream = mContext.openFileOutput("name.data", Context.MODE_PRIVATE);
DataOutputStream dout = new DataOutputStream(stream);
dout.writeObject(myArrayList);
dout.flush();
stream.getFD().sync();
catch(IOException e) { //Do something intelligent }
finally {
stream.close();
}
Będziesz musiał użyć openFileInput(), później do odczytu danych z powrotem.
Albo możesz pobrać Zewnętrzną pamięć masową. Jest to podobne, jednak musisz zagwarantować, że ono istnieje. Podobnie jak pamięć zewnętrzna jest podłączona, a nawet możliwa do zapisania. Ponieważ piszesz tutaj strukturę danych i zazwyczaj pamięć zewnętrzna jest do odczytu na całym świecie, nie sądzę, że jest to dobry pomysł na twoje zamierzone cele (po prostu od tego, co umieściłeś).
Jeśli twoje dane są uporządkowane i będą wielokrotnie sprawdzane, a ładowanie może być dość duże, rozważ użycie narzędzi SQL Lite, które są częścią systemu operacyjnego. Zakładam jednak, że tego nie potrzebujesz, ponieważ prosta lista to po prostu liniowe struktury, które prawdopodobnie można przeszukiwać w pliku (przy założeniu, że jest to mniej niż 1 MB danych :)
dlaczego nie używać sharepreferences pod warunkiem w android? – justicepenny