2011-07-26 11 views
5

Próbuję użyć klasy aplikacji Android (MyApplication.java) do przechowywania danych w niektórych ArrayLists ciągów i int.Jak łatwo przechowywać trwałe dane bez korzystania z baz danych?

Chcę, aby te dane były przechowywane na zawsze, jak baza danych, , ale bez korzystania z baz danych, aby uprościć moją aplikację.

Obecnie dane są przechowywane, a po wyjściu z aplikacji proces aplikacji nadal działa w tle. Ale jeśli zabiję proces aplikacji, dane przechowywane w klasie MyApplication.java zostaną usunięte. Potrzebuję więc funkcji przechowującej dane z moich zmiennych MyApplication w pliku i innej funkcji przywracającej dane do zmiennych.

Czy istnieje prosty i łatwy sposób rozwiązania tego problemu?

kod

wznowione:

public class MyApplication extends Application { 
    public static String LeagueTable[][] = new String[21][8]; 
    //COLUMNAS MATRIZ: 
    //0  /1 /2 /3 /4 /5 /6 /7 
    //nombre/P.J./P.G./P.E./P.P./G.F./G.C./Pts 

    public static League LFP = new League(); 
    public static Category Primera = new Category(20); 
    public static int NEQUIPOS=20; 
    public static int[][] matriz= new int[NEQUIPOS+1][NEQUIPOS+1]; //esta es la matriz de emparejamientos, representa el calendario 
    public static int PlayerTeamID; 
    public static boolean ExistingSaveGame=false;//esto es true cuando existe una partida guardada 

    //variables candidatas a poner dentro de una de las clases del modelo, como season por ejemplo 
    public static int RoundNumber; //jornada actual 
    public static boolean SeasonOver=false;//true cuando la temporada ha terminado 

    public void onCreate() { 
     super.onCreate(); 
    } 

    public void onTerminate() { 
     super.onTerminate(); 
    } 

"and a lot of functions that works with the static variables" 

Odpowiedz

8

W zależności od kontekstu (w szczególności, ale nie tylko, w odniesieniu do wielkości danych), możesz użyć preferencji współdzielonych, pamięci wewnętrznej lub pamięci zewnętrznej (karty SD).

Oficjalny przewodnik na ten temat is available here.

+0

wspólne preferencje mogą przechowywać 2 wymiarowe tablice i listy z tysiącami elementów? – NullPointerException

+2

Nie, nie jest przeznaczony do tego celu: http://developer.android.com/reference/android/content/SharedPreferences.html. Jeśli twoja kolekcja jest mała (pod względem masy, powiedzmy mniej niż megabajt), wolałbym korzystać z pamięci wewnętrznej. A jeśli jest większy, skorzystam z zewnętrznego magazynu. – Shlublu

+0

co powinienem zrobić? – NullPointerException

3

Najszybszym i najprostszym sposobem jest użycie SharedPreferences, jeśli nie przechowujesz złożonych danych.

+0

wspólne preferencje można przechowywać 2 tablice wymiar i arraylists z tysięcy elementów? – NullPointerException

Powiązane problemy