음악플레이어 개발중입니다. 안드로이드 노티피케이션에서 RemoteVeiw를 사용중인데 노티피케이션 성능관련


노티피케이션에서 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();
                }
            });
  • 2016년 02월 03일에 작성됨

조회수 299


2 답변


좋아요
2
싫어요
채택취소하기

감사합니다. Glide와는 크게 상관이 없네요.

https://groups.google.com/forum/#!topic/android-developers/qQ4SV5wL7uM

위에 링크 참조했습니다.

RemoteView에서 별도로 메모리를 관리하는 부분이 없기때문에 이미지 호출 등 내용이 바뀔 때마다 RemoteView를 새로 생성하라고 하네요. 깔끔하게 해결됬습니다.^

  • 2016년 02월 03일에 작성됨


Glide에 메모리 leak이 있는것 같습니다.

https://github.com/bumptech/glide/issues/616

onDestory() {
        Glide.get(this).clearMemory(); //  call this method manual 
}

위의 코드를 실행하는 Activity에서 이렇게 하면 해결된다는 내용이 있네요.

  • 2016년 02월 03일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close