如何在片段开头显示间隙广告



我试图在打开或加载片段之前显示测试间隙广告。我的片段是从其他片段中调用的,我把测试Ad的代码放在片段的onCreateView((中,我想在它打开之前放置广告,但实际上在显示(打开(该片段之前没有出现广告,而同一代码正在工作,当它放在同一片段类的onResume((中时显示广告。目标API 16-30。如有任何帮助,我们将不胜感激。

代码片段:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

View View calc2d=充气机。充气(R.layout.fragment_calc2d,容器,false(;

mInterstitialAd = new InterstitialAd(getActivity().getBaseContext());
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
mInterstitialAd.loadAd(new AdRequest.Builder().build());
mInterstitialAd.show();

//做点什么

}

1.首先创建一个对象类作为这个

object AdmobUtil {
private lateinit var interstitialAd: InterstitialAd
fun loadAdmobInterstitialAd(context: Context) {
interstitialAd = InterstitialAd(context)
interstitialAd.adUnitId = interstitialAdUnitId
interstitialAd.loadAd(AdRequest.Builder().build())
}
fun showInterstitialAd() {
if (interstitialAd.isLoaded) interstitialAd.show()
}
}

2.在显示片段之前加载加法

class MainActivity : AppCompatActivity(R.layout.activity_main) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
AdmobUtil.loadAdmobInterstitialAd(this)
}
}
  1. 现在显示加载的广告
class AdFragment: Fragment(R.layout.fragment_ad) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
AdmobUtil.showInterstitialAd()
}
}

Java版本

public static class AdmobUtil {
private InterstitialAd interstitialAd = null;
public void loadAdmobInterstitialAd(Context ontext) {
interstitialAd = new InterstitialAd(context);
interstitialAd.setAdUnitId(interstitialAdUnitId);
interstitialAd.loadAd(new AdRequest.Builder().build());
}
public void showInterstitialAd() {
if (interstitialAd.isLoaded) interstitialAd.show();
}
}
public class MainActivity extends AppCompatActivity() {
@Override
public void onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main);
AdmobUtil.loadAdmobInterstitialAd(this);
}
}
public class AdFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_ad, container, false);
}
@Override
public void onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
AdmobUtil.showInterstitialAd();
}
}

终于完成了。。

1:创建了一个公共类来保存我的InterinitialAd广告对象:

公共类全局{

public static InterstitialAd mInterstitialAd;

}

2:在MainActivity的onCreate((中初始化并加载添加:

globals.mInterstitialAd = new InterstitialAd(this);
globals.mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
globals.mInterstitialAd.loadAd(new AdRequest.Builder().build());

3:在目标片段的onCreateView((中显示广告:

if (!globals.mInterstitialAd.isLoaded())
globals.mInterstitialAd.loadAd(new AdRequest.Builder().build());
globals.mInterstitialAd.show();

最新更新