哪里可以存储任何Android活动可以使用的jsonArray?

时间:2012-10-10 13:32:30

标签: android arrays

我发布了一些代码来了解哪个数组可以在任何活动中全局使用,并且在任何活动中都可能需要该数组。

     Intent intent          =   getIntent();
     JSONArray beaconsArray     =   null;
     String jsonArray       =   intent.getStringExtra("activeBeaconsArray");
     try 
        {
            beaconsArray = new JSONArray(jsonArray);
            System.out.println(beaconsArray.toString(2));
        } 
     catch (JSONException e) { e.printStackTrace();}

我应该将beaconsArray存储在一个单独的类中的任何静态数组变量中,以便我可以在任何需要的地方使用它或者我应该创建父类,它将是所有需要这个数组的类的超类(beaconsArray)吗?登记/> 我不想一次又一次地从数据库中获取它!

2 个答案:

答案 0 :(得分:2)

创建一个扩展Application类的类并将数据添加到其中。您添加到它的任何数据都将持续存在,直到应用程序结束。

可以在这里找到一个很好的例子,

Using the Android Application class to persist data

http://www.helloandroid.com/tutorials/maintaining-global-application-state

或者您可以选择Sharedperefernce。但您必须了解添加到它们的数据是持久的,除非您覆盖它。

答案 1 :(得分:2)

SharedPreference首选以下这类任务,为JSONArray

中保存SharedPreference提供一些实用方法
public static void saveJSONArray(Context c, String prefName, String key, JSONArray array) {
    SharedPreferences settings = c.getSharedPreferences(prefName, 0);
    SharedPreferences.Editor editor = settings.edit();
    editor.putString(JSONSharedPreferences.PREFIX+key, array.toString());
    editor.commit();
}

public static JSONArray loadJSONArray(Context c, String prefName, String key) throws JSONException {
    SharedPreferences settings = c.getSharedPreferences(prefName, 0);
    return new JSONArray(settings.getString(JSONSharedPreferences.PREFIX+key, ""));
}