如何在不刷新 android 中的多个活动的情况下单个 admob 广告?

How to Single admob ad without refreshing multiple activities in android?

嗨,我是 android 应用程序开发的新手...并开发了 android 应用程序。在应用程序中,我在每个 activity 中都放置了 admob 广告。当我将一个 activity 移动到另一个时。每次广告都重新加载。但我希望广告不要重新加载(相同的广告显示而无需重新加载)。请帮助我最好的解决方案,并给我一个示例或示例项目...

我建议您使用 FrameLayout and Fragments 和单个 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>

将所有视图设计为 Fragments 并替换 FrameLayout 中的 fragments。当您的 Activity 显示时,广告就会显示,当您从一个屏幕移动到另一个屏幕时,它不会重新加载。

希望对您有所帮助。

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

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 作为全局变量,您可以在

以下的任何 activtiy.See 中使用它

创建 Class 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"
         ....>

在你的任何 activity 假设你有布局设置重力底部。

    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);
    }

其他活动也一样。