如何在没有刷新Android中的多个活动的情况下单个admob广告?

时间:2016-07-12 04:26:02

标签: android android-activity admob

您好我是Android应用程序开发的新手...并开发了Android应用程序。在应用程序中,我将admob广告放在每个活动中。当我将一项活动转移到另一项活动时每次广告重新加载。但我希望广告不重新加载(相同的广告显示没有重新加载)。请帮我解决这个问题,给我一个示例或示例项目...

2 个答案:

答案 0 :(得分:0)

我建议您使用FrameLayoutFragments与单Activity而不是多个Activity来展示您的观看次数。我有类似的要求。我这样做了。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/adView" />

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:visibility="gone"
        app:adSize="BANNER"
        app:adUnitId="ca-app-pub-xxxxxxxxxx/xxxxxxx" />

</RelativeLayout>

在FrameLayout中将所有视图设计为Fragments和Replace片段。显示“您的活动”后,将显示“广告”,当您从一个屏幕移动到另一个屏幕时,它将不会重新加载。

我希望它有所帮助。

答案 1 :(得分:0)

您可以像这样以编程方式创建添加

AdView adView = new AdView(activity)
adView.setAdSize(AdSize.SMART_BANNER);
adView.setAdUnitId(<your-publisher-id>);

// Initiate a generic request to load it with an ad
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
adView.loadAd(adRequest);

// Place the ad view.
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
adContainer.addView(adView, params);

因此,请创建adViewadRequest作为全局变量,您可以将其用于任何活动。请参阅下文

创建班级AppController

public class AppController extends Application {

    public static AdView adView;
    public static AdRequest adRequest 
    @Override
    public void onCreate() {
        super.onCreate();

        CreateAddForAllActivityOnce();
    }

  void CreateAddForAllActivityOnce() {

    adView = new AdView(activity)
    adView.setAdSize(AdSize.SMART_BANNER);
    adView.setAdUnitId( < your - publisher - id >);

    // Initiate a generic request to load it with an ad
    adRequest = new AdRequest();
    adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
    adView.loadAd(adRequest);
   }
 }

将您的清单和此行打开到您的应用程序代码。

<application
        android:name="your.pakacge.name.AppController"
         ....>

在您的任何活动中假设您有布局设置重力底部。

    private LinearLayout add_layout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_finalizing);

         add_layout = (LinearLayout) findViewById(R.id.adView_layout);
         LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
         add_layout.addView(AppController.adView, params);
    }

其他活动也一样。