有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在视图中添加和删除RealmChangeListener

在将在RecyclerView中使用的视图中这样做是一个好主意吗

@Override protected void onAttachedToWindow(){
    super.onAttachedToWindow();
    realmResult.addChangeListener(myChangeListener);
}

@Override protected void onDetachedFromWindow(){
    super.onDetachedFromWindow();
    realmResult.removeChangeListener(myChangeListener);
}

如果视图是在RecyclerView之外使用的,并且没有被回收,该怎么办


共 (1) 个答案

  1. # 1 楼答案

    根据这个Activity methods:onCreate() and onDestroy()

    onDetachedFromWindow()onDestroy()之后被调用,这意味着您正在调用可能已关闭的RealmResults上的方法。因此,除非你增加更多的安全检查,否则它可能会崩溃

    但这样做是安全的:

    @Override protected void onDetachedFromWindow(){
        super.onDetachedFromWindow();
        if (realmResults.isValid()) {
          realmResult.removeChangeListener(myChangeListener);
        }
    }