Как показывать рекламные баннеры, когда пользователь подключается к Интернету во время использования приложения в 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();
}
}
когда когда-либо меняется подключение к Интернету, звоните для объявления
увидеть полное использование здесь
или вы также можете проверить этот вопрос