1

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

     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)?
我不想一次又一次地从数据库中获取它!

4

2 回答 2

2

创建一个扩展Application类的类并将您的数据添加到其中。您添加到其中的任何数据都将保留到应用程序结束。

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

使用 Android Application 类来持久化数据

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

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

于 2012-10-10T13:35:06.893 回答
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, ""));
}
于 2012-10-10T13:40:21.327 回答