Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在活动之间提供大量数据,寻找最佳解决方案_Android_File_Android Activity_Large Data - Fatal编程技术网

Android 在活动之间提供大量数据,寻找最佳解决方案

Android 在活动之间提供大量数据,寻找最佳解决方案,android,file,android-activity,large-data,Android,File,Android Activity,Large Data,我正在构建一个包含大量数据的应用程序,我需要一个好的解决方案来处理这个问题。我有一个表示数据集的类。它包含几个ArrayList和一些简单的数据类型。我想将ArrayList中的许多此类保存到一个文件中。当我启动应用程序时,应该加载数据,每个活动都应该使用这些数据。如何在我的不同活动之间共享这些数据?当您的第一个活动开始时,使用异步任务从您的数据库或您在应用程序中放置的位置加载所有数据并将其设置为模型类。使模型类公开,也使所有变量和方法公开。这样应用程序的所有活动都可以使用该数据。这里就是一个例

我正在构建一个包含大量数据的应用程序,我需要一个好的解决方案来处理这个问题。我有一个表示数据集的类。它包含几个ArrayList和一些简单的数据类型。我想将ArrayList中的许多此类保存到一个文件中。当我启动应用程序时,应该加载数据,每个活动都应该使用这些数据。如何在我的不同活动之间共享这些数据?

当您的第一个活动开始时,使用异步任务从您的数据库或您在应用程序中放置的位置加载所有数据并将其设置为模型类。使模型类公开,也使所有变量和方法公开。这样应用程序的所有活动都可以使用该数据。这里就是一个例子

/* Calling a LoadDataBase() class extending AsyncTask 
* to run in background for creating or loading data base.
*/
new LoadDataBase().execute();
然后将此AsyncTask类编码为:

// LoadDataBase class for background execution.
private class LoadDataBase extends AsyncTask<String, Void, String>{  
@Override
protected String doInBackground(String... arg0) {
    // DataBaseHelper class object.
    DataBaseHelperClass dbHelper = new DataBaseHelperClass(this);
    // Create database for the first time.
    try {
    dbHelper.createOrLoadDataBase();
} catch (IOException e) {
    e.printStackTrace();
}

    // Closing the database connection.
        dbHelper.close();
    return "";
}

@Override
protected void onPostExecute(String result) {
//Your code to set data loaded from database to model classes by using getter
    //setter methods.       
} // end onPostExecute(Void... values).
} // LoadDataBase.
//加载后台执行的数据库类。
私有类LoadDataBase扩展异步任务{
@凌驾
受保护的字符串doInBackground(字符串…arg0){
//DataBaseHelper类对象。
DataBaseHelperClass dbHelper=新的DataBaseHelperClass(此);
//第一次创建数据库。
试一试{
dbHelper.createOrLoadDataBase();
}捕获(IOE异常){
e、 printStackTrace();
}
//正在关闭数据库连接。
dbHelper.close();
返回“”;
}
@凌驾
受保护的void onPostExecute(字符串结果){
//使用getter将从数据库加载的数据设置为模型类的代码
//setter方法。
}//结束onPostExecute(Void…值)。
}//加载数据库。

这可能会对您有所帮助。

如果所有数据都可以保留在本地,请使用SQLLite,否则如果您希望跨设备共享数据,请将其分发给AWS(可能是SimpleDB)。此外,如果你能澄清什么是巨大的,这可能会帮助其他人提供一个最佳的方法。