使用应用程序预加载数据的最佳方式是什么?
问题描述:
所以,我有一个应用程序,我想存储大量的字符串,并且我希望它随应用程序一起提供。在Android的onCreate方法中,我应该只有一个巨大的(几百行)String []初始值设定项吗?有一个更好的方法吗?使用应用程序预加载数据的最佳方式是什么?
我正在考虑创建自己的对象(它们被分组了一点点)并以这种方式进行存储,但仍然包括将大量字符串实例化为数组。有什么方法可以让我创建这个?有一个更好的方法吗?
答
你可以在后台用AsyncTask(单独的线程)来完成。像这样:
private class InitializeString extends AsyncTask<Void, Void, Void> {
@Override
protected void doInBackground(Void... params) {
//do your initializing
}
@Override
protected void onPostExecute(Void... params) {}
@Override
protected void onPreExecute() {}
@Override
protected void onProgressUpdate(Void... params) {}
}
另外,名称是否有意义?你可以只创建一个字符串的ArrayList是这样的:
ArrayList<String> myListOfStrings = new ArrayList<String>();
myListOfStrings.add("String 1");
myListOfStrings.add("String 2");
...
如果字符串值是硬编码的,而不是动态添加,你还可以添加他们全部的strings.xml文件。
答
如果只有几百行,我不会太在意自己。你可以'硬编码'它们,创建几百个字符串,或者将它们放在由构造函数读入的辅助'平面文件'中。无论哪种方式,结果是几百个字符串...
对于速度 - 硬编码它们。
此之前的问题对“如何”做了单独的对象...... how do i preload a hashmap in an object(without put method)?
如果数据不是太大,可以将其存储在strings.xml档案一点讨论 – Eenvincible 2014-09-03 21:15:50