2012-03-09 97 views
4

我有三項活動,所有這三項活動都在此被碼在三項活動的OnCreate()方法設置的底部橫幅廣告。如何使橫幅廣告(AdMob的)通用於所有我的活動

由於某種原因,我需要完成每個活動,同時從一個活動移動到另一個活動,並且startActivity()返回到第一個活動。

我想知道,我如何爲所有這三個活動製作一個橫幅廣告,而不是單獨從不同的onCreate中調用它們,因爲我懷疑在活動過渡期間我正在刷新Ads(安靜地)點擊次數不錯。

我應該在靜態類中聲明,以便它可以從任何活動被調用,只有一個實例會在那裏(所以沒有令人耳目一新由於活動創建)

建議,歡迎。

+1

不知道每個活動做什麼,或者爲什麼你有,你從一個移動到另一個來完成它們,這可能是不相關的....你有沒有想過乾脆具有的FrameLayout單個活動和(低於)橫幅廣告視圖?而不是從一個活動轉移到下一個活動,只需構建每個活動的視圖並將其放置在FrameLayout中。橫幅廣告視圖將始終保持一致。或者,根據Android版本,使用Fragments而不是活動。只是一個想法。 – Squonk 2012-03-09 05:56:36

+0

雖然你可以設置你的廣告橫幅通用於所有的活動,新的廣告請求發送給AdMob當每個活動露面。如果用戶非常頻繁地切換活動,則可能會得到非常低的填充率,請改爲使用一個Activity +多個Fragments,請參閱[這裏](http://stackoverflow.com/a/30341571/1487475) – zdd 2015-05-20 07:12:57

回答

2

你知道實現ViewStub?

對於您的問題,ViewStub用於在頁腳放置AdMob廣告,你只需要創建此頁腳佈局,然後通過使用ViewStub例子包括此佈局在XML佈局(活動佈局)。

下面是一個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 
     } 
} 

現在,你只需要在你的Activity類擴展這個BaseActivity類,並調用setFooterAds()方法來顯示AdMob廣告。

+0

我會執行它儘快檢查它的工作原理,我希望佈局不會再次創建,因爲我不希望我的廣告被刷新,嘗試一次後會回來。謝謝 – 2012-03-13 11:11:53

+0

嗨帕雷希,請看看我的問題,我也有一個問題,在我的應用程序中添加廣告..... http://pastebin.com/LpnLuRDT – 2014-02-27 13:20:44

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

我認爲這裏唯一的出路是使用單個活動和多個片段......活動將有一個框架佈局和一個包含廣告的片段。雖然不同的屏幕(片段)將取決於用戶體驗,包含廣告的片段將保持原樣,對所有屏幕都是通用的!