Carregar anúncios na tela inicial?

9

Tenho alguns anúncios que levam muito tempo para carregar. Eu queria saber se é possível carregá-los enquanto o uso estava na tela inicial. Eu olhei para esta resposta:

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

E a resposta sugere usar uma tela inicial para carregar os anúncios. Como posso descobrir quando os anúncios são carregados para continuar na minha próxima atividade? O que acontecerá se o usuário estiver no modo avião, ele ficará preso na tela inicial? Eu vi o admob adicionar ouvinte, mas isso precisa da revisão, mas a minha revisão está na próxima atividade? Como devo lidar com esse problema?

Além disso, quando tento fazer isso:

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

Eu recebo:

O método não estático não pode ser referenciado a partir de um contexto estático. O problema é que estou tentando ver quando o carregamento que está na próxima atividade termina de carregar.

Null Pointer Exception
fonte
Seu problema estático se deve a algo que tenta tratar um método de instância como se fosse estático. talvez parte de sua implementação está tentando usar um método não-estático, como se fosse estática ou um de seus funções implementadas devem ser estáticos ...
Troyseph
Também aconselho a não fazer o jogador esperar enquanto o anúncio está sendo carregado. Carregue-o em segundo plano e, quando apropriado, mostre-o. Esperar o carregamento dos anúncios parece uma punição para um jogador e pode impedir que ele seja reproduzido.
Troyseph
@Troyseph E como eu faria isso? Obrigado
NullPointerException
tente isso bfy.tw/39nB
Troyseph

Respostas:

1

Seu erro de pilha vem do fato de que 'AdView' é um tipo, não uma instância. Por exemplo, digamos que você tenha a seguinte classe:

package simulator;

import java.awt.Color;

public class Dog {

public Color coatColor;
public static boolean mans_best_friend;

}

porque todos os cães são o melhor amigo do homem, a afirmação

Dog.mans_best_friend = true;

é uma instrução válida, porque o modificador estático permite usar o tipo para definir uma variável. Da mesma forma, você não pode ter a declaração

Dog.coatColor = Color.BROWN;

porque 'Cachorro' não se refere a um objeto específico de cachorro.

-

Isso significa que você precisa obter uma

new AdView();

Objete de alguma forma. Se você ler a documentação, geralmente existem duas maneiras comuns de obter o objeto.

1) um construtor: é uma alocação simples de nova memória no computador para armazenar todas as variáveis ​​que ele contém, geralmente rápidas, mas ineficientes para executar várias vezes. dá-lhe um novo objeto

2) um método GetInstance (): é mais uma solução alternativa que um método, ele permite que um objeto seja criado e permite a máxima eficiência do código, com personalização mínima absoluta.

Boa sorte em encontrar uma maneira de obter seu objeto AdView!

tuskiomi
fonte