0

我在这里处理一个问题。我从一本书中提取了 600.000 个单词,我需要做的就是将这些单词放入数据库中。问题是,我第一次打开这本书时就收集了这些词。我正在做的是使用异步任务来读取所有单词,问题是:在将这些单词插入数据库之前,我应该把它们放在哪里?我尝试使用 ArrayList、array 并尝试将它们连接成一个巨大的字符串。但总是面临同样的问题,内存不足。

我应该尝试将单词直接插入数据库吗?我应该尝试存储到较小的 ArrayList 中,插入,清除 ArrayList 并从我停止的地方开始吗?我没主意了。谢谢。

下面,我的异步任务:

private class storeWords extends AsyncTask<String, Void, Boolean> {

    @Override
    protected void onPreExecute() {
    }

    @Override
    protected Boolean doInBackground(String... params) {        

        JTPagina drmPage = new JTPagina();
        JTObra dadosObra = new JTObra();

        int res = access.getPage(idBook, currentPage, drmPage);

        JTPalavra[] palavras;
        palavras = drmPage.getPalavras();

        //Log.d("--->", "" + currentPage);


        if (currentPage + 1 < pageCount) {
            for (int i = 0; i < palavras.length; i++) {
                list.add(palavras[i].getPalavra());
            }


            try {
                MoveNext(); 
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        return true;
    }

    @Override
    protected void onPostExecute(Boolean result) {
    }
}
4

0 回答 0