2016-08-23 9 views
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); 
     } 
    }); 
} 

}

答えて

関連する問題