마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오가 권장하는대로 코딩을 하다보니 모순되는 부분이 있어 질문드립니다.

0 추천

안드로이드 스튜디오를 통해 코딩을 하다보면 오른쪽 스크롤 바에 노란색 경고 표시를 확인할 수 있는데요. 아래 두 가지를 발견하여 해결해보고자 하는데 서로 모순되는 게 아닌가 하는 생각이 들어 질문드립니다.

1. Handler 나 AsyncTask 를 상속받은 클래스의 경우 static 으로 지정하지 않으면 메모리 leak 이 발생할 수 있다는 경고 표시.

2. UI 관련 인스턴스를 static 으로 지정하면 메모리 leak 이 발생할 수 있다는 경고 표시.

제가 구현하고자 하는 것은 Thead 나 AsyncTask 를 통해 bitmap 을 decode 하고, Handler 나 AsyncTask 의 post 단에서 ImageView 에 bitmap 을 출력하는 것인데요. 위 1번, 2번이 서로 모순되어 두 경고를 동시에 만족시킬 수가 없는 상황입니다. 혹시 다른 뾰족한 수가 있을까요? 아니면 둘 중 하나는 포기하고 warning 상태로 빌드할 수 밖에 없는 것인지 궁금합니다.

THK (2,360 포인트) 님이 2018년 1월 23일 질문
1. static 으로 클래스 구성하시구요
2. imageview 에 bitmap 을 출력하시는데 static 이랑 상관이 있나요?? static 으로 만든 class 에 생성자쪽 인자에 imageview 를 전달해주시면 될듯 한데 말이죠, 그게 귀찮으면 weak reference 로 activity 를 넘기셔도 되구요
static 클래스의 생성자로 넘길 생각은 못했었네요. 감사합니다.

1개의 답변

0 추천
warning 그냥 surpress로 막고해도 전혀 문제는 없던데요
꿈꾸는프로그래머 (140 포인트) 님이 2018년 1월 23일 답변
surpress 라는 말은 처음 들어보는데, 혹시 그냥 무시하고 진행하는 걸 말씀하시는 건가요? 그냥 무시하면 앱이 구동 되는 것은 알고 있습니다. 왜 저런 모순되는 상황을 구글에서 권장하는 것인지, 혹시 제가 아직 모르는 방법 중에 warning 없이 코드를 구성할 수 있는지를 알고 싶어서 질문드렸습니다.
...