您好我是Android应用程序开发的新手...并开发了Android应用程序。在应用程序中,我将admob广告放在每个活动中。当我将一项活动转移到另一项活动时每次广告重新加载。但我希望广告不重新加载(相同的广告显示没有重新加载)。请帮我解决这个问题,给我一个示例或示例项目...
答案 0 :(得分:0)
我建议您使用FrameLayout和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>
在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);
因此,请创建adView
和adRequest
作为全局变量,您可以将其用于任何活动。请参阅下文
创建班级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);
}
其他活动也一样。