2016-05-29 10 views
0

RecyclerViewで使用されるビューでこれを行うのは良い考えですか?RealmChangeListenerをビューに追加して削除する

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

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

ビューをRecyclerViewの外で使用し、リサイクルされていない場合はどうなりますか?

答えて

1

はこのActivity methods:onCreate() and onDestroy()

onDetachedFromWindow()によると、あなたが閉鎖されている可能性がRealmResultsのメソッドを呼び出していることを意味するonDestroy()後に呼び出されます。安全性チェックを追加しない限り、クラッシュする可能性があります。これを行う

はしかし、安全のようになります。

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

ありがとう!これがメモリリークを防ぐことができますか? –

+0

はい、メモリリークから安全でなければなりません。 –

関連する問題