2017-02-18 78 views
0

请考虑以下流程:如何在用户在Android应用程序使用过程中连接到Internet时显示横幅广告?

1)用户在他的设备上没有互联网连接时打开应用程序。 (所以,没有横幅广告显示)

2)当使用应用程序,用户连接到互联网。

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

要做到这一点,最好的方法是什么?

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

+0

我想,你的代码需要返工或实施anoth当它遍历你的代码时,它的功能就是做基本的控制检查。你告诉我们的方式在代码中听起来有些杂乱。 – user7568042

回答

2

您可以通过使用这个类互联网连接状态变化(刚加入这个类,因为它是)

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问题