Проблема с адмоб

1

Хорошо, раньше я спрашивал аналогичную question и получил ответ, но это был слишком общий вопрос.

Теперь у меня есть приложение, в котором есть много действий. Каждое действие имеет тот же макет admob (AdView), который включен в его файл макета. Теперь проблема заключается в том, когда я перехожу от одного действия к другому после того, как первый экран завершил загрузку объявления, второе действие все еще ожидает другого цикла выборки объявлений (т.е. Он снова отправляет запрос объявления и отображает новое объявление ]. Все, что я хочу сделать, - это для моего приложения показывать один и тот же экземпляр объявления в каждом действии. [То же самое значение экземпляра: у меня есть временной интервал, на основе которого должны обновляться объявления, поэтому новый запрос на рекламу должен быть отправлен только в том случае, если срок истекает, а не когда пользователь переходит от одной активности к другой.]

В любом случае я могу это сделать. Я пробовал подход "Singleton", упомянутый в более раннем решении, но с каждым разом происходит множество осложнений, он говорит, что у указанного ребенка уже есть родительский элемент, и необходим вызов removeView на родителя.

Я делаю что-то неправильно (OR/AND) может кто-нибудь помочь мне с каким-то другим решением?

Мой класс Singleton находится здесь:

public class CommonAdFooter {
static final CommonAdFooter commonAdFooter = new CommonAdFooter();
static AdView admobView;
LayoutInflater LInflater;

private CommonAdFooter() {
    LInflater = (LayoutInflater) Constants.context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    admobView = (AdView) LInflater.inflate(R.layout.ad_layout, null);
    LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT);
    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    admobView.setLayoutParams(lp);
}

public static AdView getAdLayout() {
    return admobView;
}
}

и это мой файл макета для объявлений

<?xml version="1.0" encoding="utf-8"?>
<com.admob.android.ads.AdView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:myapp="..."
android:id="@+id/ad" android:layout_alignParentBottom="true"
android:background="#C9E3F6" android:layout_width="fill_parent"
android:layout_height="wrap_content" myapp:backgroundColor="#006699"
myapp:primaryTextColor="#C9E3F6" myapp:secondaryTextColor="#C9E3F6" />

Изменить: добавлена ​​ссылка Admob API.

  • 1
    Конечно, вы получаете больший доход от обслуживания большего количества объявлений, чем от того, что держите его?
  • 0
    Да, я знаю это, но это будет раздражать пользователей. Поэтому я подумал, что найду обходной путь для этого.
Теги:
admob
footer

1 ответ

3
Лучший ответ

Я не уверен в точном синтаксисе, вы могли бы связать AdMob api?

Но вы получаете сообщение об ошибке, потому что когда вы возвращаете макет объявления, он уже привязан к предыдущему действию. Поэтому вам понадобится что-то вроде этого:

public static AdView getAdLayout() {

admobView.removeParent();//или аналогичный вид API

вернуть admobView;Забастовкa >

}

ИЗМЕНИТЬ

А вот мы идем: AdView JavaDoc, поэтому он имеет вид из вида и RelativeLayout отлично.

Попробуйте следующее:

public static AdView getAdLayout() {
     if(admobView.getParent() != null){
        admobView.detachAllViewsFromParent();
     }
    return admobView;
}

или

public static AdView getAdLayout() {
     if(admobView.getParent() != null){
        admobView.getParent().removeView(admobView);
     }
    return admobView;
}

Ответ на JavaDoc - это просто пробная версия и ошибка

  • 0
    Это, кажется, не помогает ..
  • 0
    @ Ананд Как это не поможет? Не могли бы вы быть более конкретным, вы пробовали это? Ваша последняя ошибка на самом деле намекает на то, что вы должны сделать
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню