如何在不刷新 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);
因此创建 adView
和 adRequest
作为全局变量,您可以在
以下的任何 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);
}
其他活动也一样。
嗨,我是 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);
因此创建 adView
和 adRequest
作为全局变量,您可以在
创建 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);
}
其他活动也一样。