我是Android新手,我正在創建一個包含廣告的鬧鐘應用程序。我想包含全屏廣告的邏輯地點是在用戶解散警報後立即發佈的。Android全屏廣告(插頁式)在屏幕鎖定時不會顯示
我遇到的問題是用戶的鎖定屏幕通常在鬧鐘響起時處於活動狀態。我的活動和用戶界面顯示正常,因爲我使用的是WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
標誌,但當我撥打interstialAd.show()
時,鎖定屏幕彈出,並且廣告隱藏在其後面。這是一個非常糟糕的用戶體驗,因爲沒有真正的跡象表明廣告已被加載,直到他/她下次決定解鎖手機時才顯示出來。
我的代碼:
我初始化我的活動的onCreate()
方法的廣告:
if (BuildConfig.FLAVOR.equals("free")) {
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(getString(R.string.alarm_dismissed_interstitial_ad_id));
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
// ad closed or finished so we're done here.
Log.d(TAG, "onAdClosed: ad closed... finishing activity");
if (Build.VERSION.SDK_INT >= 21) {
finishAndRemoveTask();
} else finish();
}
});
if (!mAdLoadStarted) {
requestNewInterstitial();
}
}
requestNewInterstitial()
:
private void requestNewInterstitial(){
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
mInterstitialAd.loadAd(adRequest);
mAdLoadStarted = true;
}
我稱之爲表演方法一旦用戶已駁回鬧鐘:
if (BuildConfig.FLAVOR.equals("free")) {
// The dismiss sequence has finished so we can display the full screen ad.
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
} else {
Log.d(TAG, "onDismissFinished: Ad wasn't displayed because it didn't load in time.");
}
}else{
// No ads for the paid version, we're done here
if (Build.VERSION.SDK_INT >= 21) {
finishAndRemoveTask();
} else finish();
}
你想把廣告放在鎖定屏幕上? 「這是一個非常糟糕的用戶體驗」 –
整個體驗通常發生在鎖定屏幕上,因爲這是一個鬧鐘應用程序,所以手機通常在鬧鐘響起時睡着。用戶必須完成一系列活動以證明他已醒來,並解除警報。解僱後,如果他使用應用的免費版本,他會得到一個廣告。 – mark3306