Android 在插入广告前在屏幕上显示进度条
我正在开发实现Admob中间广告的Android应用程序。我想要的是处理程序锁定屏幕并显示进度条两秒钟,然后显示中间广告 我所做的是通过创建一个动画,并在Android 在插入广告前在屏幕上显示进度条,android,android-studio,kotlin,android-fragments,admob,Android,Android Studio,Kotlin,Android Fragments,Admob,我正在开发实现Admob中间广告的Android应用程序。我想要的是处理程序锁定屏幕并显示进度条两秒钟,然后显示中间广告 我所做的是通过创建一个动画,并在interstitalad.show方法之后调用它,为Interstitial广告设置动画 mInterstitialAd!!.adListener = object: AdListener() { override fun onAdLoaded() { btnstart.setOnClickListe
interstitalad.show
方法之后调用它,为Interstitial广告设置动画
mInterstitialAd!!.adListener = object: AdListener() {
override fun onAdLoaded() {
btnstart.setOnClickListener(View.OnClickListener {
if (mInterstitialAd!!.isLoaded) {
mInterstitialAd!!.show()
overridePendingTransition(R.anim.in_left, R.anim.nav_default_exit_anim)
} else {
sharpref!!.privacyPolicyAccepted()
if (!sharpref!!.isFirstTimeLaunch()) {
val intent = Intent(applicationContext, SliderActivity::class.java)
startActivity(intent)
} else {
val intent = Intent(applicationContext, MainActivity::class.java)
startActivity(intent)
}
}
})
}
代码设置了<代码>overridePendingTransition(R.anim.in_left,R.anim.nav_default_exit_anim)洲际广告的动画,但我想在洲际广告打开前显示两秒钟的Pogress栏
坠机后的日志
2020-12-04 10:29:03.603 577-1239/? E/PackageManager: liangshuang2, setEnabledSetting, packageName=com.google.android.apps.youtube.mango,,className=androidx.work.impl.background.systemjob.SystemJobService,,,newState=1,,flags=1,,userId=0,,callingPackage=null
2020-12-04 10:29:04.309 577-5614/? E/PackageManager: liangshuang2, setEnabledSetting, packageName=com.google.android.apps.youtube.mango,,className=androidx.work.impl.background.systemalarm.RescheduleReceiver,,,newState=1,,flags=1,,userId=0,,callingPackage=null
2020-12-04 10:35:56.218 22376-22565/? E/AndroidRuntime: FATAL EXCEPTION: Timer-0
Process: com.techpaliyal.bottomcutoutnavigation, PID: 22376
java.lang.RuntimeException: Can't toast on a thread that has not called Looper.prepare()
at android.widget.Toast$TN.<init>(Toast.java:405)
at android.widget.Toast.<init>(Toast.java:117)
at android.widget.Toast.makeText(Toast.java:292)
at android.widget.Toast.makeText(Toast.java:282)
at
com.maximus.technologies.views.activities.SplashActivity$setClickListeners$4$onAdLoaded$1$$special$$inlined$timerTask$1.run(Timer.kt:149)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
2020-12-04 10:36:00.841 577-739/? E/UsbDeviceManager: unknown state HWDISCONNECTED
--------- beginning of main
2020-12-04 10:36:00.921 763-763/? E/licong: onReceive
2020-12-04 10:36:00.929 577-596/? E/BatteryExternalStatsWorker: no controller energy info supplied for wifi
2020-12-04 10:36:00.942 577-596/? E/BatteryExternalStatsWorker: no controller energy info supplied for bluetooth
2020-12-04 10:36:01.171 577-596/? E/BatteryExternalStatsWorker: no controller energy info supplied for wifi
有关计时器的更多详细信息,请参阅答案
快速概述:-
链接中的答案显示了在特定时间后安排某些工作的不同方法。您可以根据自己的要求使用
据我从你的问题中了解,你可能会有这样的想法:-
if (mInterstitialAd!!.isLoaded) {
// show Progress Bar visibility here
Handler().postDelayed({
//Hide Progress Bar visibility here
mInterstitialAd!!.show()
overridePendingTransition(R.anim.in_left,R.anim.nav_default_exit_anim)
}, 2000)
}
在这个方法中,在你的
if(minterstitalad!!.isLoaded)
之后,你还可以有一个计时器(更多详细信息请参见提供的链接)然后,如果你愿意,你可以用你的动画来展示你的广告。我用java使用倒数计时器来做这件事。
@SaraGarcía我想要的是活动被卡住了,显示进度条两秒钟,然后用Kotlin显示间隙adi think u编码。我对它一无所知,但在这里如何在Java中做到这一点。试着用Kotlin重写它<代码>ProgressDialog pd=新建ProgressDialog(此);pd.setMessage(“加载广告…”);pd.show();新的倒计时(20001000){@Override public void onTick(long p1){}@Override public void onFinish(){if(interstituralad.isLoaded()){interstitulard.show();}pd.disease();}}}.start()代码>我需要把这个放在哪里,比如我想在进度条后打开间隙广告两秒钟我正在应用Handler崩溃请在崩溃的地方分享你的日志。我的方案是按开始按钮显示进度条两秒钟,然后显示间隙广告请发布你的更新代码。还有,为什么您的btnstart.setOnClickListener(View.OnClickListener
在adLoaded
中?关于如何在按钮单击时显示广告,请查看以下答案:-
if (mInterstitialAd!!.isLoaded) {
// show Progress Bar visibility here
Handler().postDelayed({
//Hide Progress Bar visibility here
mInterstitialAd!!.show()
overridePendingTransition(R.anim.in_left,R.anim.nav_default_exit_anim)
}, 2000)
}