0

ここで問題を扱っています。私は本から抽出した 600.000 語を持っています。私がする必要があるのは、これらの語をデータベースに入れることです。問題は、最初にその本を開いたときにこれらの単語を収集することです。私がやっていることは、非同期タスクを使用してすべての単語を読み取ることです。問題は、これらの単語をデータベースに挿入する前にどこに置くのですか? 私はArrayList、配列を試し、それらを単一の巨大な文字列に連結しようとしました。しかし、常にメモリ不足という同じ問題に直面します。

単語をデータベースに直接挿入する必要がありますか? 小さな ArrayLists に格納し、挿入し、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