Vollyの引用によりメモリが漏洩した.
1087 ワード
Vollyのアイテムを使うと、leakcanaryは基本的にActivityがVollyのinterface referenceの情報を表示します.
WeakReferenceを使って、この問題を解決しました.
WeakReferenceを使って、この問題を解決しました.
private static class SListener implements Response.Listener {
private final WeakReference activityWeakReference;
private final WeakReference callbackWeakReference;
public SListener(Activity activity, VolleyCallback callback) {
activityWeakReference = new WeakReference(activity);
callbackWeakReference = new WeakReference(callback);
}
@Override
public void onResponse(JSONObject jsonObject) {
Activity act = activityWeakReference.get();
VolleyCallback vc = callbackWeakReference.get();
if (act != null && vc != null) {
LogUtil.d(TAG, act.toString() + " " + jsonObject.toString());
something you need to do;
vc.onSuccess(jsonObject);
}
}
actとcalBackはすでにWeakReferenceという形でVollyフレームに導入されています.