Załadować reklamy na ekranie powitalnym?

9

Mam reklamy, które ładują się bardzo długo. Zastanawiałem się, czy można je załadować, gdy użyto go na ekranie powitalnym. Patrzyłem na tę odpowiedź:

/programming/5133342/how-can-i-make-my-ads-appear-faster-in-my-android-app

Odpowiedź sugeruje użycie ekranu powitalnego do ładowania reklam. Jak mogę dowiedzieć się, kiedy reklamy są ładowane, aby przejść do następnej aktywności? Co się stanie, jeśli użytkownik będzie w trybie samolotowym, czy utknie na ekranie powitalnym? Widziałem detektora dodawania admob, ale to wymaga adview, ale mój adview jest w następnej aktywności? Jak mam rozwiązać ten problem?

Ponadto, gdy próbuję to zrobić:

 AdView.setAdListener(new AdListener() {
     // Implement AdListener
 });

Dostaję:

Do metody niestatycznej nie można się odwoływać z kontekstu statycznego. Chodzi o to, że próbuję zobaczyć, kiedy dodawanie, które znajduje się w następnej aktywności, jest ładowane.

NullPointerException
źródło
Twój problem statyczny wynika z tego, że próbujesz traktować metodę instancji tak, jakby była statyczna. być może część twojej implementacji próbuje zastosować metodę niestatyczną, jakby była statyczna LUB jedna z zaimplementowanych funkcji powinna być statyczna ...
Troyseph
Ponadto odradzam zmuszanie odtwarzacza do czekania na wczytywanie reklamy. Załaduj go w tle, a następnie w razie potrzeby pokaż. Oczekiwanie na załadowanie reklam wydaje się karą dla gracza i może zniechęcić go do gry.
Troyseph,
@Troyseph A jak miałbym to zrobić? Dzięki
NullPointerException
spróbuj tego bfy.tw/39nB
Troyseph

Odpowiedzi:

1

Błąd stosu wynika z faktu, że „AdView” jest typem, a nie instancją. Załóżmy na przykład, że masz następującą klasę:

package simulator;

import java.awt.Color;

public class Dog {

public Color coatColor;
public static boolean mans_best_friend;

}

ponieważ wszystkie psy są najlepszym przyjacielem człowieka, oświadczenie

Dog.mans_best_friend = true;

jest prawidłową instrukcją, ponieważ modyfikator statyczny pozwala użyć tego typu do ustawienia zmiennej. Podobnie nie możesz mieć tego oświadczenia

Dog.coatColor = Color.BROWN;

ponieważ „Pies” nie odnosi się do konkretnego obiektu psa.

-

Oznacza to, że musisz zdobyć

new AdView();

Obiekt jakoś. Jeśli przeczytasz o dokumentacji, zwykle istnieją 2 typowe sposoby uzyskania obiektu.

1) konstruktor: jest to prosty przydział nowej pamięci na komputerze, aby pomieścić wszystkie zawarte w nim zmienne, zwykle szybkie, ale nieefektywne wielokrotne wykonywanie. daje ci świeży przedmiot

2) metoda GetInstance (): Jest to raczej obejście niż metoda, która pozwala na utworzenie jednego obiektu i pozwala na maksymalną wydajność kodu, przy absolutnym minimalnym dostosowaniu.

Powodzenia w znalezieniu sposobu na uzyskanie obiektu AdView!

tuskiomi
źródło