小编Zea*_*ang的帖子

在Clean Architecture中管理领域实例的最佳实践是什么?

我的项目使用干净的架构.在这种情况下,UI层与Domain层分开.所以我认为UI层不拥有realm实例会更好.正如领域的文档建议在Activity的生命周期中管理领域实例,那么我应该如何处理领域实例呢?

为了更清楚,我的项目太重了,无法改变所有对象的扩展RealmObject.所以我使用单独的对象来持久化数据.当api调用完成时,业务对象转换为领域对象,与来自领域的查询相反.我创建这样的方法:

public void insert(T object){
    final Realm realm = RealmProvider.getRealm();
    realm.executeTransactionAsync(new Realm.Transaction() {
        @Override
        public void execute(Realm realm) {
            realm.copyToRealmOrUpdate(createRealmObject(object));
        }
    }, new Realm.Transaction.OnSuccess() {
        @Override
        public void onSuccess() {
            realm.close();
        }
    }, new Realm.Transaction.OnError() {
        @Override
        public void onError(Throwable error) {
            realm.close();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

实际上,它工作正常.但下面我不知道如何处理关闭领域实例.

public Observable<T> queryAsync(Condition<? extends RealmObject> condition) {
    final Realm realm = RealmProvider.getRealm();
    return condition.getQuery(realm).findFirstAsync()
            .asObservable()
            .filter(new Func1<RealmObject, Boolean>() {
                @Override
                public Boolean call(RealmObject realmObject) {
                    return realmObject.isLoaded();
                }
            })
            .map(new …
Run Code Online (Sandbox Code Playgroud)

android realm

5
推荐指数
1
解决办法
2328
查看次数

使用Android体系结构组件LiveData和ViewModel时是否需要使用onSaveInstanceState和onRestoreInstanceState?

Android Architecture组件提供了LiveDataViewModel类,它们对生命周期更友好,并且设计用于更精简的Activity / Fragment。这些类负责处理跨配置更改的数据存储,但是与Activity框架API相比,我对它们的用法感到困惑。是 onSaveInstanceState(Bundle)onRestoreInstanceState(Bundle)仍然是必要的或有用的保留活动状态?

android viewmodel android-livedata android-architecture-components

5
推荐指数
1
解决办法
533
查看次数