음악플레이어 개발중입니다. 안드로이드 노티피케이션에서 RemoteVeiw를 사용중인데 노티피케이션 성능관련
조회수 1828회
노티피케이션에서 RemoteView의 setImageViewResource함수를 이용해서 노티피케이션에 앨범아트 이미지를 넣습니다. 문제는 없지만 약 100곡정도(?) 함수가 호출되면 조금씩 느려지는데요. 위함수를 넣지 않고 테스트할때는 그런 문제가 없었습니다. 메모리가 계속 쌓이는것같은데 뭐가 문제일까요? 아래 showNotify에서 notificationManager.notify()함수가 실행됩니다.
Glide.with(MusicPlayService.this)
.load(ContentUris.withAppendedId(Constants.ARTWORK, CurrentPlayList.get().getList().get(CurrentPlayList.get().currentPosition).albumId))
.asBitmap()
.fallback(R.drawable.ic_launcher)
.error(R.drawable.ic_launcher)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
remoteViews.setImageViewBitmap(R.id.icon, resource);
remoteSmallViews.setImageViewBitmap(R.id.icon, resource);
showNotify();
}
});
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
감사합니다. Glide와는 크게 상관이 없네요.
https://groups.google.com/forum/#!topic/android-developers/qQ4SV5wL7uM
위에 링크 참조했습니다.
RemoteView에서 별도로 메모리를 관리하는 부분이 없기때문에 이미지 호출 등 내용이 바뀔 때마다 RemoteView를 새로 생성하라고 하네요. 깔끔하게 해결됬습니다.^
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
Glide에 메모리 leak이 있는것 같습니다.
https://github.com/bumptech/glide/issues/616
onDestory() { Glide.get(this).clearMemory(); // call this method manual }
위의 코드를 실행하는 Activity에서 이렇게 하면 해결된다는 내용이 있네요.
댓글 입력