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

OutofMemory 때문에 죽겠습니다. ㅠㅠㅠ (large size bitmap관련 아니에요)ㅠㅠ

0 추천
제 앱이 자꾸 OOM 때문에 여기저기서 죽습니다.

이전까지는 이런 이슈는 없었는데, 이번에 업데이트 하고나서부터 계속 나오네요..

 

이번에 ADFIT 망하면서 여러 광고 플랫폼들을 넣었거든요....

fill-rate가 망이라.. 아무거나 광고 호출되는 넘 띄우자 하고..

 

그런데..제가 구조를 잘못 잡았는지.. 계속 앱을 쓰다보면 OOM 때문에 앱이 죽네요.. 여기저기서요 ㅠㅠ

죽은 activity에 제 layout에는 imageview하나 없는 것을 보니 광고 view들 여러개 띄우다가

죽은것 같습니다 ㅠㅠㅠ

 

제가 Activity가 좀 많긴 한데,

Activity마다 layout아래에 아래 banner layout을 include시켰거든요..

그리고 BannerPackage라는 class를 하나 만들어서 광고를 보여주고 했는데..

 

아마도 여러 광고들이 각각 view에 뭔가 처리하고,  제가 onPause에 아무런 작업도 해주지 않아서

child activity 실행 시마다 계속 쌓이면서 OOM이 발생하는 것 같은데요...

인터넷 찾아보면 Bitmap recycle이나 뭐 이런 내용만 나오는데, 이런 경우에는 어떻게 작업을 해 줘야 할까요? ㅠㅠ

 

 

========BANNER LAYOUT ==========
<LinearLayout ~생략~ >
    <com.fsn.cauly.CaulyAdView ~생략~/>
    <com.kakao.adfit.publisher.AdView ~생략~/>
    <com.google.android.gms.ads.AdView ~생략~ />
    <com.skplanet.tad.AdView ~생략~ />
</LinearLayout>

==============================

 

=========BANNER PACKAGE CLASS ==============

public class BannerPackages implements {

    public BannerPackages(com.fsn.cauly.CaulyAdView mCaulyBannerView,
                          com.skplanet.tad.AdView mTadBannerView,
                          com.kakao.adfit.publisher.AdView mAdfitBannerView,
                          com.google.android.gms.ads.AdView mAdmobBannerView) {
        this.mCaulyBannerView = mCaulyBannerView;
        this.mTadBannerView = mTadBannerView;
        this.mAdfitBannerView = mAdfitBannerView;
        this.mAdmobBannerView = mAdmobBannerView;
        mAdMobRequest = new AdRequest.Builder().build();
    }
 

    // 각 광고별로 광고호출 성공 Listener 호출 시 View VISIBLE로 바꿔줌.

}

 

==============================
cebuasia (120 포인트) 님이 2017년 2월 2일 질문

1개의 답변

0 추천
onPause() 에서 현재 진행중인 광고를 멈추는 함수를 호출해야 합니다.

물론, onResume()에서 다시 시작하는 함수도 호출해야 하구요.

OOM은 발생한적이 한번도 없어서 정확한 답변을 못드리겠습니다.
바램 (19,650 포인트) 님이 2017년 2월 2일 답변
...