使用应用程序预加载数据的最佳方式是什么?

问题描述:

所以,我有一个应用程序,我想存储大量的字符串,并且我希望它随应用程序一起提供。在Android的onCreate方法中,我应该只有一个巨大的(几百行)String []初始值设定项吗?有一个更好的方法吗?使用应用程序预加载数据的最佳方式是什么?

我正在考虑创建自己的对象(它们被分组了一点点)并以这种方式进行存储,但仍然包括将大量字符串实例化为数组。有什么方法可以让我创建这个?有一个更好的方法吗?

+0

如果数据不是太大,可以将其存储在strings.xml档案一点讨论 – Eenvincible 2014-09-03 21:15:50

你可以在后台用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)?