Android在本地存储数组列表并使用它

时间:2016-03-13 14:29:41

标签: android arrays arraylist

我们有一个应用程序,其中我们有几个数组列表定义如下

    public final static ArrayList<String> Arraylist1= new ArrayList<String>(){{
    }};
    public final static ArrayList<String> Arraylist2= new ArrayList<String>(){{
    }};
    public final static ArrayList<String> Arraylist3= new ArrayList<String>(){{
    }};

我们正在网络可用之间更新这个数组列表。所以它就像同步app.Problem我们现在面对的是,每次应用程序启动时它都会初始化数组列表并等待第一次同步。有没有办法在本地存储更新的数组列表,以便即使同步不会因为网络不可用而发生,它也不会影响应用程序功能。

3 个答案:

答案 0 :(得分:0)

您必须在本地存储您需要的内容,并且在网络不可用的情况下,您可以使用本地&#34;较旧的&#34;版。

主要可能性是3:

  1. 共享首选项:可以在应用程序或私有文件之间共享的文件,它由一对键值组成,用于存储数据。
  2. SqlLite DB:一个普通的关系数据库。
  3. 文件,例如json文件具有您自己的结构。 (这里你完全免费)

答案 1 :(得分:0)

你可以做这样的事情

SharedPreferences.Editor editor = sharedpreferences.edit();

editor.putString(Name, n);
editor.putString(Phone, ph);
editor.putString(Email, e);
editor.commit();

并且在你刚读完值并更新服务器之后......

或者您可以将其存储在文件中以及何时连接到互联网上传

答案 2 :(得分:0)

这取决于您处理的数据类型。如果它的数量和重量数据我不会喜欢sharedPreferences。

最佳做法是将数据保存在Sqlite数据库中,并在需要时检索。

另一种方法是让arraylist像你一样静止。这将保持一段时间的价值。并且将比共享首选项或Sqlite DB更快地读写。但你不能指望静态变量。它们的寿命取决于GC。