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