본문 바로가기
안드로이드

[안드로이드] 다중쓰레드 기반에서 ProgressBar 멈춤 현상

by 호군 2011. 8. 9.
반응형
아직도 정확한 이유는 알지 못합니다 ㅠㅠ

문제상황
1. ListView의 FooterView로 추가한 View에 ProgressBar가 포함됨.
2. 이 FooterView는 계속 VISIBLE 상태이고, ProgressBar 역시 VISIBLE 상태임.
3. A쓰레드에서 여러 작업 후 이 FooterView를 VISIBLE 함. (VISIBLE 수행은 runOnUiThread에서 함)
4. A쓰레드 작업 중간에 B쓰레드를 시작하고, B쓰레드 역시 A쓰레드와 같은 순서로 FooterView를 VISIBLE함.
5. FooterView의 ProgressBar가 중지됨.

 
해결방법
1. 쓰레드 작업 시작 후 바로 ProgressBar의 Visibility를 VISIBLE/GONE으로 설정 함.
2. 쓰레드 작업이 FooterView를 VISIBLE하면, ProgressBar의 Visibility를 GONE/VISIBLE으로 설정 함.

View의 GONE으로 설정하면 '레이아웃에서 어느 공간도 차지하지 않음' 이라 합니다.
View.GONE 으로 설정시 destroyDrawingCache()를 호출하는데, 이 메소드에서 Bitmap을 메모리 해제 합니다. 아마 이 부분에서 INVISIBLE과의 차이가 아닌가 생각됩니다.

반응형