2012-03-09 1 views
4

У меня есть три мероприятия, и все эти три действия имеют баннерную рекламу внизу, которые устанавливаются по коду в методе трех видов деятельности OnCreate().Как сделать баннеры Объявления (admob) Общие для всех моих занятий

И по какой-то причине мне нужно закончить каждое действие, переходя от одного действия к другому, и startActivity() для возврата к первой операции.

Я хотел бы знать, как я могу сделать только одно баннерное объявление для всех этих трех действий, вместо того, чтобы называть их отдельно от разных onCreate, потому что я сомневаюсь, что при переходе Activities я освежаю объявления (тихое), которое isn Это хорошая практика для ваших кликов.

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

Предложения приветствуются.

+1

Не зная, что делает каждая деятельность или почему вы должны ее закончить, когда вы переходите от одного к другому, это может быть нецелесообразно ... Вы думали о простом одиночном действии с FrameLayout и (ниже этого) просмотр рекламного баннера? Вместо перехода от одного действия к другому просто создайте представление каждого действия и поместите его в FrameLayout. Просмотр рекламного баннера будет оставаться постоянным. Кроме того, в зависимости от версии Android используйте фрагменты вместо действий. Просто идея. – Squonk

+0

Несмотря на то, что вы можете настроить рекламный баннер, общий для всех видов деятельности, новый запрос на рекламу отправляется в admob при каждом проявлении активности.если пользователь очень часто меняет активность, вы можете получить очень низкую норму заполнения. Вместо этого используйте одно действие + несколько фрагментов, см. [здесь] (http://stackoverflow.com/a/30341571/1487475) – zdd

ответ

2

Вы знаете о реализации ViewStub?

Для вашей проблемы, ViewStub используется для размещения AdMob объявления на сноски, вы просто должны создать макет для этой сноски, а затем включить этот макет в макетах XML (макеты деятельности), используя пример ViewStub.

Это example для реализации ViewStub, да для заголовка, но вы можете взять концепцию из него.

Теперь, чтобы оптимизировать решение (код), вы можете создать класс Аннотация и расширяет активность класса и включают в свой AdMob объявления код внутри этого класса.

Например:

public abstract class BaseActivity extends Activity 
{ 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

     public void setFooterAds() 
     { 
       // Make ViewStub visible 
       // include your Ads code 
     } 
} 

Теперь вы просто должны расширить этот класс BaseActivity в классах активность и вызвать setFooterAds() для отображения AdMob объявления.

+0

Я бы это реализовал asap, чтобы проверить, как это работает, я надеюсь, что макет не будет создан снова, поскольку я не хочу, чтобы мои объявления получили Refreshhed, вернутся после попытки один раз. спасибо –

+0

Привет, Paresh, Pls взглянуть на мою проблему, у меня также есть проблема с добавлением объявлений в мое приложение ..... http: //pastebin.com/LpnLuRDT –

1

Вы можете поместить этот код в свой основной вид деятельности, чтобы рекламный баннер отображался во всех трех действиях.

import com.google.ads.*; 

public class testActivity extends Activity { 
private static final String MY_AD_UNIT_ID = "yourId"; 
private AdView adView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    super.loadUrl("file:///android_asset/www/index.html");   
    // Create the adView 
    adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID); 
    LinearLayout layout = super.root; // this is the only change 
    layout.addView(adView); 
    adView.loadAd(new AdRequest()); 

Xml файла:

<com.admob.android.ads.AdView 
     android:id="@+id/ad" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     xmlns:backgroundColor="#000000" 
     xmlns:primaryTextColor="#ffffff" 
     xmlns:secondaryTextColor="#cccccc" 
1

Я думаю, что единственным выходом здесь является использование одиночной активности и нескольких фрагментов. У этой операции будет макет фрейма и фрагмент, содержащий Ad ... В то время как различные экраны (фрагменты) будут заменены в зависимости от UX, Ad-содержащий-фрагмент останется таким, какой он есть, общий для всех экранов!