2017-02-18 17 views
0

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

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

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

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

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

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

+0

Я полагаю, что ваш код должен быть переработан или реализовать Аноф чтобы выполнять базовые контрольные проверки, поскольку он выполняет итерацию через ваше кодирование. То, как вы сказали нам, звучит немного грязно в коде. – 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 вопрос