0
リソースの生のフォルダにレルムファイルがあります。オブジェクトを読み込み、変更して、そのセッションで保存することができます。しかし、私が新しいセッションを開始するとき、データは自分の変更を反映しません。私はいつでもRealm.deleteRealmFile()またはRealm.clear()を呼び出していません。あなたは生のリソースから「default0」レルムにアプリを起動するたびに、あなたのレルムを上書きしているので、おそらくですレルムのデータがセッション間で持続しない
public class MyDb {
private Realm realm;
private RealmConfiguration config0;
private Context context;
public MyDb(Context context) {
this.context = context;
copyBundledRealmFile(context.getResources().openRawResource(R.raw.default0),"default0");
config0 = new RealmConfiguration.Builder(context)
.name("default0")
.build();
realm = Realm.getInstance(config0);
}
private String copyBundledRealmFile(InputStream inputStream, String outFileName) {
try {
File file = new File(context.getFilesDir(), outFileName);
FileOutputStream outputStream = new FileOutputStream(file);
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buf)) > 0) {
outputStream.write(buf, 0, bytesRead);
}
outputStream.close();
return file.getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public void saveResource(final Resource resourceIn) {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
resourceIn.setSaved(true);
}
});
}
public void unSaveResource(final Resource resourceIn) {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
resourceIn.setSaved(false);
}
});
}
}