【问题标题】:How to store persistent data easily without using databases?如何在不使用数据库的情况下轻松存储持久数据?
【发布时间】:2016-07-23 01:55:00
【问题描述】:

我正在尝试使用 Android 应用程序类 (MyApplication.java) 将数据存储在一些字符串和整数的 ArrayLists 中。

我希望像数据库一样永久存储这些数据,但不使用数据库,以简化我的应用程序。

目前数据被存储,当我退出应用程序时,应用程序的进程仍然在后台运行。但是,如果我终止应用程序的进程,则存储在 MyApplication.java 类中的数据将被删除。所以我需要某种函数将 MyApplication 变量中的数据存储在一个文件中,以及另一个将数据恢复到变量中的函数。

有没有简单易行的方法来解决这个问题?

代码恢复:

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"

【问题讨论】:

    标签: android persistence


    【解决方案1】:

    根据您的环境(尤其是但不仅与数据大小相关),您可能希望使用共享首选项、内部存储或外部存储(SD 卡)。

    关于 is available here 的官方指南。

    【讨论】:

    • 共享首选项可以存储包含数千个元素的二维数组和数组列表?
    • 不,它不是为此而设计的:developer.android.com/reference/android/content/…。如果您的收藏很小(就重量而言。假设小于一兆字节),我宁愿使用内部存储。如果它更大,我会使用外部存储。
    • 您的收藏有多重?如果是我:>= 1 MB:外部存储。否则是内部的。
    • 共享首选项仅存储字符串,因此您必须将数组转换为 json 字符串并存储它。当然,当你再次加载你的应用程序时,你需要从 json 转换为数组。
    【解决方案2】:

    如果您不存储复杂数据,最快最简单的方法是使用SharedPreferences

    【讨论】:

    • 共享首选项可以存储包含数千个元素的二维数组和数组列表?
    【解决方案3】:

    有许多选项可以在 android 上本地保存数据。有关数据存储的更多信息,请参阅http://developer.android.com/guide/topics/data/data-storage.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多