2017-02-18 45 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問題

相關問題