ここで問題を扱っています。私は本から抽出した 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) {
}
}