Ich habe Service, der eine Aktivität zu einem bestimmten Zeitpunkt zeigen wird, nach dieser Aktivität an jedem 13. Mal zeige ich eine Admob Interstitial-Anzeigen. Die RAM-Nutzung meiner Anwendung steigt um 20 MB, wenn die Interstitial-Anzeige angezeigt wird und danach keine Müllsammlung mehr erfasst wird. Beim nächsten 13. Mal, wenn andere Interstitial-Anzeigen angezeigt werden, gibt es keine Erhöhung des Dienstspeichers.Memory Leak bei der Verwendung von Admob Interstitial-Anzeigen
Mein Code für die Schaltung von Anzeigen:
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();
}
}
ich einige Lösungen in den folgenden Stack-Überlauf Fragen versucht, aber nichts für mich gearbeitet.
Android Admob Interstitial Memory leak
Android AdMob causes memory leak?
Haben Sie ein Beispiel? Ich versuche alles schon mit dem gleichen Problem, kann es aber nicht finden. Hast du dafür eine neue Klasse gemacht? – Riverside
Verwenden Sie Android: Prozessattribut, um die Aktivitäten zu trennen, die in verschiedenen Prozessen ausgeführt werden. Das hat mein Problem gelöst. Verwenden Sie es passend für Ihr Projekt. – venkat
Die Ausführung in einem anderen Prozess löst das Problem nicht für mich. – frankish