在将要在RecyclerView
中使用的视图中执行此操作是一个好主意吗?
@Override protected void onAttachedToWindow(){
super.onAttachedToWindow();
realmResult.addChangeListener(myChangeListener);
}
@Override protected void onDetachedFromWindow(){
super.onDetachedFromWindow();
realmResult.removeChangeListener(myChangeListener);
}
如果视图在
RecyclerView
之外使用并且未回收该怎么办? 最佳答案
根据此Activity methods:onCreate() and onDestroy()
在onDetachedFromWindow()
之后调用onDestroy()
,这意味着您正在可能已关闭的RealmResults上调用方法。因此,除非您添加更多安全检查,否则它可能会崩溃。
这样做是安全的:
@Override protected void onDetachedFromWindow(){
super.onDetachedFromWindow();
if (realmResults.isValid()) {
realmResult.removeChangeListener(myChangeListener);
}
}