Как показывать рекламные баннеры, когда пользователь подключается к Интернету во время использования приложения в Android?

Рассмотрим следующий поток:

1) Пользователь открывает приложение, когда на его устройстве нет подключения к интернету. (Таким образом, баннерная реклама не отображается)

2) При использовании приложения пользователь подключается к Интернету.

В вышеуказанной ситуации мой баннер не загружается автоматически при установлении интернет-соединения. Я хочу, чтобы баннерная реклама отображалась после шага 2.

Каков наилучший способ сделать это?

Для дальнейшего уточнения, чтобы рекламный баннер отображался в приложении прямо сейчас, мне нужно перезапустить приложение, на этот раз, с подключением к Интернету. Другими словами, если приложение запускается без подключения к интернету, рекламные баннеры просто не отображаются.

1 ответ

Решение

С помощью этого класса вы можете изменить состояние подключения к Интернету (просто добавьте этот класс как есть)

 public class NetworkStateReceiver extends BroadcastReceiver {

protected List<NetworkStateReceiverListener> listeners;
protected Boolean connected;

public NetworkStateReceiver() {
    listeners = new ArrayList<NetworkStateReceiverListener>();
    connected = null;
}

public void onReceive(Context context, Intent intent) {
    if(intent == null || intent.getExtras() == null)
        return;

    ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ni = manager.getActiveNetworkInfo();

    if(ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
        connected = true;
    } else if(intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,Boolean.FALSE)) {
        connected = false;
    }

    notifyStateToAll();
}

private void notifyStateToAll() {
    for(NetworkStateReceiverListener listener : listeners)
        notifyState(listener);
}

private void notifyState(NetworkStateReceiverListener listener) {
    if(connected == null || listener == null)
        return;

    if(connected == true)
        listener.networkAvailable();
    else
        listener.networkUnavailable();
}

public void addListener(NetworkStateReceiverListener l) {
    listeners.add(l);
    notifyState(l);
}

public void removeListener(NetworkStateReceiverListener l) {
    listeners.remove(l);
}

public interface NetworkStateReceiverListener {
    public void networkAvailable();
    public void networkUnavailable();
 }
}

когда когда-либо меняется подключение к Интернету, звоните для объявления

увидеть полное использование здесь

или вы также можете проверить этот вопрос

Другие вопросы по тегам