如何在用户在Android中使用应用程序时连接到Internet时显示横幅广告?

时间:2017-02-18 17:02:09

标签: android internet-connection advertisement banner-ads

考虑以下流程:

1)用户在设备上没有互联网连接时打开应用程序。 (因此,没有展示横幅广告)

2)使用应用程序时,用户连接到Internet。

在上述情况下,我的横幅广告不会自动加载互联网连接。我希望在第2步之后显示横幅广告。

这样做的最佳方式是什么?

为了进一步说明,为了让横幅广告立即在应用中显示,我必须最终重新启动应用,这次,互联网连接存在。换句话说,如果应用程序在没有互联网连接的情况下启动,则不会显示横幅广告。

1 个答案:

答案 0 :(得分:3)

您可以使用此类更改Internet连接状态(只需按原样添加此类)

 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();
 }
}

更改互联网连接时需要广告

查看here

上的完整用法

或者您也可以查看this问题