Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在关闭RealmBaseAdapter中的领域实例_Realm_Listadapter_Realm Base Adapter - Fatal编程技术网

正在关闭RealmBaseAdapter中的领域实例

正在关闭RealmBaseAdapter中的领域实例,realm,listadapter,realm-base-adapter,Realm,Listadapter,Realm Base Adapter,Realm的Java文档中提到,最佳做法是: 。。。在所有活动和片段中打开一个领域实例,并在活动或片段被销毁时再次关闭它 但是,如果我想做这样的事情,会发生什么 public class HelperListAdapter extends RealmBaseAdapter<Helper> implements ListAdapter { //... Realm realm = Realm.getDefaultInstance(); //... @Ove

Realm的Java文档中提到,最佳做法是:

。。。在所有活动和片段中打开一个领域实例,并在活动或片段被销毁时再次关闭它

但是,如果我想做这样的事情,会发生什么

public class HelperListAdapter extends RealmBaseAdapter<Helper> implements ListAdapter {
    //...
    Realm realm = Realm.getDefaultInstance();
    //...
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // ...
    }
}
公共类HelperListAdapter扩展了RealmBaseAdapter实现ListAdapter{
//...
Realm Realm=Realm.getDefaultInstance();
//...
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
// ...
}
}

那么我应该在哪里关闭()本例中的领域实例?

Java适配器模式是提供在两个实体之间传输数据的方法,而不是直接保存和读取数据。我想让您了解领域实例在活动/片段中的位置,适配器用于将值传输到视图


此外,未关闭的领域实例将消耗内存和CPU周期。请尽快考虑关闭它们。

< P> java适配器模式是提供两个实体之间传输数据的方法,而不是从它保存和读取数据。我想让您了解领域实例在活动/片段中的位置,适配器用于将值传输到视图


此外,未关闭的领域实例将消耗内存和CPU周期。请尽快考虑关闭它们。

您链接的文档非常具体地说,为了维护生命周期,您应该在绑定到活动生命周期的UI线程上创建域实例。
public class MyActivity extends Activity {
    private Realm realm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        realm = Realm.getDefaultInstance();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        realm.close();
    }
}
更好的方法是使用保留的片段在活动中保存领域实例,并使用构造函数和`onDestroy()


您链接的文档明确指出,为了维护生命周期,您应该在绑定到活动生命周期的UI线程上创建领域实例

public class MyActivity extends Activity {
    private Realm realm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        realm = Realm.getDefaultInstance();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        realm.close();
    }
}
更好的方法是使用保留的片段在活动中保存领域实例,并使用构造函数和`onDestroy()


谢谢你的回答!我一直在阅读文档……但问题是我使用的是一个
RealmBaseAdaptor
,正如@Sung-Taek Kim所提到的,它只是一种传输数据的模式。更大的问题是思考如何不从
领域
这里读取…您只需提供领域的结果集谢谢您的回答!我一直在阅读文档……但问题是我使用的是一个
RealmBaseAdaptor
,正如@Sung-Taek Kim所提到的,它只是一种传输数据的模式。更大的问题是如何在这里不从
领域
读取…您只需提供领域的结果集