我发布了一些代码来了解哪个数组可以在任何活动中全局使用,并且在任何活动中都可能需要该数组。
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)吗?登记/> 我不想一次又一次地从数据库中获取它!
答案 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, ""));
}