안녕하세요. 카카오 oauth를 활용한 로그인을 추가하고자 해서 sdk sample 앱과 관련 문서를 참조했습니다.
그런데 leak canary에서 다음과 같은 memory leak가 자꾸 떠서 문의드리게 되었습니다.
제 코드의 LoginActivity.class에서 로그인 버튼을 눌렀을 시
Session.getCurrentSession().open(AuthType.KAKAO_LOGIN_ALL, LoginActivity.this);
라는 코드가 실행이 되도록 하였는데요, sdk 코드를 확인해보니 open 함수는 다음과 같이 StartActivityWrapper라는 객체를 생성하고,
public void open(final AuthType authType, final Activity callerActivity) {
internalOpen(authType, new StartActivityWrapper(callerActivity), null);
}
이 객체는 KakaoAuthCodeManager라는 class에서 startActivityWrapper라는 private variable에 저장이 되는 것 같습니다.
문제는 제 LoginActivity의 onDestroy에서
Session.getCurrentSession().removeCallback(callback);
를 하고 다음 Activity로 넘어갔을 때도 KakaoAuthCodeManager.startActivityWrapper에 LoginActivity가 남아있어서 메모리 누수가 발생하고 있는 것 같습니다.
여러 검색과 시도를 해보았는데 해결법을 찾지 못해서 도움을 요청합니다. 미리 감사드립니다.