android - 在 Activity 之外调用 Realm.close()

标签 android realm

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

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

假设所有操作都可以在 UI 线程中执行,而无需在 AsyncTasks 中执行。

谢谢

最佳答案

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

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);
...

关于android - 在 Activity 之外调用 Realm.close(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29725805/

相关文章:

android - In App Billing 交易是否有多种格式?

android - 保持 Textinputlayout 提示始终位于顶部

android - OpenAllWhitelistURLsInWebView for Android in Cordova/Phonegap

java - 对话框 fragment 中的 MP 图表

android - Realm 迁移 - 将新的主键初始化为 int

android - 向上滑动动画覆盖 fragment 而不是同时动画两个 fragment

iOS: Realm ,检查对象是否为零

swift - 在父类(super class)中使用 className() 来获取 Realm 中子类的名称

android - 为什么 Realm 会为所有的模型类生成代理类?

swift - 如何从 Realm 列表中获取要在 UITableview 中使用的值