に私は.CSVファイル
アプリが最初に実行されている場合、このメソッドは、レルムデシベルにすべての単語を保存するだけで保存すべきではすべての単語を保存した辞書アプリケーションを作成してきましたいくつか。データの保存はCSVからレルム
タスク[email protected]は= [email protected]から拒否[ランニング、プールサイズ= 13、アクティブなスレッド= 13、= 100、完了したタスクをタスクキューに入れられました1]
realm = Realm.getDefaultInstance();
//adding to db satrt
if (!(realm.isEmpty())) {
Log.v("DB","already there!!");
} else {
Log.v("DB","Not Found!!");
String csvFile = "longevity.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
try {
br = new BufferedReader(new InputStreamReader(getAssets().open(csvFile)));
while ((line = br.readLine()) != null) {
// use comma as separator
final String[] oneWord= line.split(cvsSplitBy);
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm bgRealm) {
Word user = bgRealm.createObject(Word.class);
user.setWord(oneWord[1]);
user.setMeaning(oneWord[2]);
user.setSynonyms(oneWord[3]);
}
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
Log.v("TAGGED","SAVED");
}
}, new Realm.Transaction.OnError() {
@Override
public void onError(Throwable error) {
Log.v("TAGGED","FAILED");
}
});
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
アンドロイドが事前に入力Relamデータベースを出荷するより良い方法は、私はアプリが初めて、エラーを与えるだけでいくつかの単語を保存するこの方法を実行したときに、DBに保存する146800個の言葉を持っている、 あり上のショー!
あなたが代わり146800のトランザクションの1つのトランザクションで全体のことを実行する必要があります考えてみましょう... – EpicPandaForce
はい、まさにそれをやったが、コンパイルするためにあまりにも多くの時間を割いて、あなたは、私がどのようにして領域を持つあらかじめデータベースを出荷することができるか知っていますか? – phpdroid
初期データベースを作成し、アプリと共に配布することができます:https://realm.io/docs/java/1.1.1/api/io/realm/RealmConfiguration.Builder.html#assetFile-android.content.Context- java.lang.String- – geisshirt