如何在广告关闭时启动 Second Activity? (科特林)
How to start Second Activity when ad is closed? (Kotlin)
在我的应用中,用户在 MainActivity 中启动。单击按钮 (btn) 时,会弹出插页式广告。我希望它在广告关闭时转到 SecondActivity,但它只是返回到 MainActivity。我在下面粘贴了我的代码
class MainActivity : AppCompatActivity() {
private var mInterstitialAd: InterstitialAd? = null
val i:Intent = Intent(this, SecoundActivity::class.java)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MobileAds.initialize(this) {}
var adRequest = AdRequest.Builder().build()
InterstitialAd.load(this, "ca-app-pub-3940256099942544/1033173712", adRequest, object : InterstitialAdLoadCallback() {
override fun onAdFailedToLoad(adError: LoadAdError) {
mInterstitialAd = null
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
mInterstitialAd?.fullScreenContentCallback = object:FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
startActivity(i)
}
}
mInterstitialAd = interstitialAd
}
})
btn.setOnClickListener {
if (mInterstitialAd != null) {
mInterstitialAd?.show(this)
}
}
}
}
任何解决这个问题的方法。谢谢
由于您的 mInterstitialAd
可以为空,因此您的 FullScreenContentCallback
永远不会被初始化,因为当您尝试调用它时 mInterstitialAd
为空。它将在调用 onAdLoaded
之前执行。
像这样把全屏内容回调放到onAdLoaded回调中
override fun onAdLoaded(interstitialAd: InterstitialAd) {
interstitialAd.fullScreenContentCallback = object:FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
startActivity(i)
}
}
mInterstitialAd = interstitialAd
}
此外,最好将变量初始化放在 class 的顶部而不是底部
private var mInterstitialAd: InterstitialAd? = null
private val i = Intent(this, SecondActivity::class.java)
在我的应用中,用户在 MainActivity 中启动。单击按钮 (btn) 时,会弹出插页式广告。我希望它在广告关闭时转到 SecondActivity,但它只是返回到 MainActivity。我在下面粘贴了我的代码
class MainActivity : AppCompatActivity() {
private var mInterstitialAd: InterstitialAd? = null
val i:Intent = Intent(this, SecoundActivity::class.java)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
MobileAds.initialize(this) {}
var adRequest = AdRequest.Builder().build()
InterstitialAd.load(this, "ca-app-pub-3940256099942544/1033173712", adRequest, object : InterstitialAdLoadCallback() {
override fun onAdFailedToLoad(adError: LoadAdError) {
mInterstitialAd = null
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
mInterstitialAd?.fullScreenContentCallback = object:FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
startActivity(i)
}
}
mInterstitialAd = interstitialAd
}
})
btn.setOnClickListener {
if (mInterstitialAd != null) {
mInterstitialAd?.show(this)
}
}
}
}
任何解决这个问题的方法。谢谢
由于您的 mInterstitialAd
可以为空,因此您的 FullScreenContentCallback
永远不会被初始化,因为当您尝试调用它时 mInterstitialAd
为空。它将在调用 onAdLoaded
之前执行。
像这样把全屏内容回调放到onAdLoaded回调中
override fun onAdLoaded(interstitialAd: InterstitialAd) {
interstitialAd.fullScreenContentCallback = object:FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
startActivity(i)
}
}
mInterstitialAd = interstitialAd
}
此外,最好将变量初始化放在 class 的顶部而不是底部
private var mInterstitialAd: InterstitialAd? = null
private val i = Intent(this, SecondActivity::class.java)