限制插页式广告的数量

时间:2015-11-15 21:50:21

标签: android interstitial

当我在每次用户打开该活动时加载的活动(非主要活动)广告中添加插页式广告

我需要一个在打开活动时显示插页式广告的代码,如果此活动一次又一次打开,则不会显示任何广告

public class MapActivity extends ActionBarActivity
{
public static final String EXTRA_POI_ID = "poi_id";
public static final String EXTRA_POI_LATITUDE = "poi_latitude";
public static final String EXTRA_POI_LONGITUDE = "poi_longitude";


public static Intent newIntent(Context context)
{
    return new Intent(context, MapActivity.class);
}


public static Intent newIntent(Context context, long poiId, double poiLatitude, double poiLongitude)
{
    Intent intent = new Intent(context, MapActivity.class);

    // extras
    intent.putExtra(EXTRA_POI_ID, poiId);
    intent.putExtra(EXTRA_POI_LATITUDE, poiLatitude);
    intent.putExtra(EXTRA_POI_LONGITUDE, poiLongitude);

    return intent;
}


@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_map);
    setupActionBar();
    //Dgad.setTest(true);
    Dgad.showRandomPopup(MapActivity.this);

    // init analytics tracker
    ((CityGuideApplication) getApplication()).getTracker();
}


@Override
public void onStart()
{
    super.onStart();

    // analytics
    GoogleAnalytics.getInstance(this).reportActivityStart(this);
}


@Override
public void onResume()
{
    super.onResume();
}


@Override
public void onPause()
{
    super.onPause();
}


@Override
public void onStop()
{
    super.onStop();

    // analytics
    GoogleAnalytics.getInstance(this).reportActivityStop(this);
}


@Override
public void onDestroy()
{
    super.onDestroy();
}


@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    // action bar menu behaviour
    switch(item.getItemId())
    {
        case android.R.id.home:
            finish();
            return true;

        default:
            return super.onOptionsItemSelected(item);
    }
}


private void setupActionBar()
{
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    ActionBar bar = getSupportActionBar();
    bar.setDisplayUseLogoEnabled(false);
    bar.setDisplayShowTitleEnabled(true);
    bar.setDisplayShowHomeEnabled(true);
    bar.setDisplayHomeAsUpEnabled(true);
    bar.setHomeButtonEnabled(true);
}

}

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:

end_ad=new InterstitialAd(this);
end_ad.setAdUnitId(getResources().getString(R.string.banner_ad_unit_id));
end_ad.loadAd(new AdRequest.Builder().build());

当你想控制它时:

if(end_ad.isLoaded()){
   end_ad.show();
   Log.d(TAG,"SHOWING");
}
else{
   Log.d(TAG, "NOT SHOWING");
}

否则,您可以创建GlobalConstantClass

public GlobalClass{
 public static boolean Shown = false;
}

然后,当您第一次显示ADS时,可以将此boolean设置为true:

GlobalClass.Shown = true;

如果您想在onDestroy()关闭应用时显示,请将变量设置为false

然后,当您想要显示ADDS时,您必须要求boolean,例如:

if(!GlobalClass.Shown){
 //Show adds
 Dgad.showRandomPopup(MapActivity.this);
 GlobalClass.Shown=true;
}
else {
 //Do nothing
}