特定の時点でアクティビティを表示するサービスがあります。そのアクティビティの後、13 回ごとに admob インタースティシャル広告を表示しています。インタースティシャル広告が表示されるとアプリケーションの RAM 使用量が 20MB 増加し、その後ガベージ コレクションが行われません。次の 13 回目に別のインタースティシャル広告が表示されると、サービス メモリは増加しません。
広告を表示するための私のコード:
public void loadAndShowInterstitialAd() {
interstitial = new InterstitialAd(getApplicationContext());
interstitial.setAdUnitId(AD_UNIT_ID);
final AdRequest adRequest = new AdRequest.Builder()
.build();
Handler handler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
interstitial.loadAd(adRequest);
return true;
}
});
if (handler != null) {
handler.sendEmptyMessageDelayed(0, 200);
}
interstitial.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
displayInterstitial();
}
});
}
public void displayInterstitial() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}
次のスタック オーバーフローの質問でいくつかの解決策を試しましたが、何もうまくいきませんでした。