Google Ad Mob: предварительно загрузив объявление, сделав его статичным c в классе publi c и получив доступ к нему из нескольких действий и фрагментов: утечки памяти? - PullRequest
0 голосов
/ 25 апреля 2020

Согласно AdMob Do c и AdMob для Firebase do c, хорошо получить согласие пользователя на GDPR, инициализировать клиент AdMob SDK и предварительно загрузить Interstitial Ad, все эти операции когда пользователи только что запустили приложение, в основном упражнении / фрагменте. А чтобы показать объявление в другом упражнении / фрагменте, позже.

Так что мне было интересно, как пройти предварительно загруженное объявление, и нашел ответ на этот вопрос: Как предварительно загрузить промежуточную рекламу AdMob и отправить другому android мероприятию с помощью намерения .

Идея состоит в том, чтобы сохранить ссылку * stati c на InterstitialAd, используя этот код:

public class AdManager {
    private static InterstitialAd ad;

    public void setAd(Context ctx, AdRequest adRequest) {
        ad = new InterstitialAd(ctx);
        ad.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
        ad.loadAd(adRequest);
    }

    public InterstitialAd getAd() {
        return ad;
    }
}

setAd вызывается в основной активности / фрагменте и getAd другой активностью / фрагментом, запущенным пользователем.

Мой вопрос: принимая во внимание жизненный цикл Android операций / фрагментов и JVM сборщик мусора, может ли это вызвать утечки памяти или значения null (если одно из действий остановлено и, возможно, перезапущено Android, может ли ссылка c на stati null)? Или безопасно использовать эту идею для использования ссылки * stati c?

...