在Activity之外调用Realm.close()

时间:2015-04-19 04:29:58

标签: android realm

我想将所有Realm操作(读/写)从Activities / Fragments(在大多数示例中实现)移动到单独的类/层类。

我的问题是,如果不在Activity / Fragment中直接使用,我应该何时何地调用Realm.getInstance()和Realm.close()?什么是好的模式?

让我们假设操作都可以在UI线程中执行,而不需要在AsyncTasks中执行。

由于

1 个答案:

答案 0 :(得分:0)

你可以把它放在像这样的助手类中:

public class RealmHelper {

  private static RealmHelper realmHelper;
  private static Realm realm;

  public static RealmHelper getInstance(Context context) {
    realm = Realm.getInstance(context);
    if(realmHelper == null) {
        realmHelper = new RealmHelper();
    }
    return realmHelper;
  }

  private RealmHelper() {
  }

  public void saveMy(MyModel my) {
    realm.beginTransaction();
    realm.copyToRealmOrUpdate(my);
    realm.commitTransaction();
  }
  ...

然后在需要时调用它:

...
RealmHelper realmHelper = RealmHelper.getInstance(getApplicationContext());
realmHelper.saveMy(my);
...