私はGITHUBでここに尋ねるのを見ました..レルムデータベース、crudを使用できますか?
古いSQLIteは、データベース操作を行うためのCRUDサービスを作成するために使用されました。私はrealm.close();
を呼び出すために忘れてはならないので、私は、少なくとも4つのactivites、10個の断片、10の非同期タスクや他のものを持っている、と私はrealm.close
を呼び出す必要がある場合は、各1は、データベース操作の種類を持っています私は、CRUDを作成し、realm
を渡し、操作を行うために使用する必要がありますか?完全
static LOperations instance;
private Realm realm;
private RealmQuery<L> query;
private RealmResults<Category> categories;
private L lObject;
public LOperations(Application application) {
realm = Realm.getDefaultInstance();
}
public static LOperations with(Activity activity) {
if (instance == null) {
instance = new LOperations(activity.getApplication());
}
return instance;
}
public static LOperations with(Application application) {
if (instance == null) {
instance = new LOperations(application);
}
return instance;
}
public static LOperations with(Fragment fragment) {
if (instance == null) {
instance = new LOperations(fragment.getActivity().getApplication());
}
return instance;
}
@Override
public RealmResults<Lei> getAllLbyCategory(String c) {
query = realm.where(L.class);
query.equalTo("active", 1);
query.contains("category", c);
return query.findAllSorted("id", Sort.ASCENDING);
}
@Override
public RealmResults<Category> getAllCategories() {
return realm.where(Category.class).equalTo("active", true).findAllSorted("order", Sort.ASCENDING);
}
@Override
public RealmResults<Lei> getAllActiveL() {
query = realm.where(L.class);
query.equalTo("active", 1);
return query.findAllSorted("last_date", Sort.ASCENDING);
}
この作品を、しかし、私は開かれたデータベースを追跡できる方法を理解カント:
私の実際のコードは次のようになり?
実際に私はこれを使用する:LOperations.with(this/getActivity).someMethod();
(これを行うことで、私は開かれたレルムを追跡カントと思う)
私はこのことについて何かで考えることができます。
Realm realm = realm.getDefaultInstance();
and to get allActiveL(), change to:
@Override
public RealmResults<Lei> getAllActiveL(Realm realm) {
realm.where(L.class);
query.equalTo("active", 1);
return query.findAllSorted("last_date", Sort.ASCENDING);
}
ので、私は、レルムが、その後に作成され、持っていますメソッドに渡すので、私はonDestroyでrealm.close()を追加することができます
は正しいアプローチですか?または別のものがありますか?