Слушатели создают утечки памяти
У меня есть слушатель, который доставляет ответ от залпа на активность, которая делает запрос:
public interface MyListener{
void interpretResponseListener(String response);
void interpretErrorListener(VolleyError error);
}
Метод, который используется для вызова:
public static void myVolleyRequest(int request code,MyListener myListener){
...
...
}
Код деятельности:
private MyListener myListener = new MyListener(){
@Override
void interpretResponseListener(String response){
//database changes
}
@Override
void interpretErrorListener(VolleyError error){
//database changes
}
};
myVolleyRequest(100,myListener);
Я внесу изменения в базу данных в ответ. Leakcanary дает мне следующую ошибку:
GC ROOT com.android.volley.NetworkDispatcher.<Java Local>
* references com.test.restful.Request.mListener
* references com.test.restfulRestful$44.val$myListener (anonymous class implements com.android.volley.Response$Listener)
* references com.test.Activity$8.this$0 (anonymous class implements com.test.restful.Restful$MyListener)
* leaks com.test.Activity instance