我有一个通知应用程序从未以99美分的价格获得。所以我尝试使用免费广告模式。
问题是,Admob很慢。活动显示后,其加载时间可达7秒。该活动只是一个通知,因此用户可以在广告有机会加载之前关闭该应用。
我有一项服务可以打开活动。
服务:
Intent notificationIntent = new Intent(this, FullScreen.class);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);
NotificationManager nm = (NotificationManager) this
.getSystemService(Context.NOTIFICATION_SERVICE);
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
Notification notif;
if (currentapiVersion >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
Notification.Builder builder = new Notification.Builder(context)
.setWhen(System.currentTimeMillis())
.setContentIntent(contentIntent)
notif = builder.build();
} else {
notif = new Notification.Builder(context)
.setWhen(System.currentTimeMillis())
.setContentIntent(contentIntent)
}
活动&#39> onCreate中的Admob代码(从admob&#39文档中剪下来):
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
活动加载速度非常快,我不想延迟加载广告。有什么方法可以让我在服务期间加载AdView,然后将其传递给活动?我猜不到没有。这是设计使人们无法在他们的应用中产生大量虚假广告展示。
答案 0 :(得分:1)
您可能不希望听到这一点,但听起来您的应用不适合广告收入模式。
您需要一个UI上下文才能加载广告。除非在非常有限的时间段内,否则您没有UI上下文。
正如你已经注意到加载一段时间,你没有。
答案 1 :(得分:0)
AdMob(以及许多其他广告提供商)异步加载广告。方法调用mAdView.loadAd(adRequest)
将启动从服务器获取广告的异步过程,并将立即退出。
广告将在稍后加载。您还可以设置自定义广告监听器,一旦获取并显示广告(或出现故障),就会调用该监听器
答案 2 :(得分:0)
如果您已迁移到Kotlin,则可以使用GlobalScope.launch{}
,它对我有一点帮助。我不知道它是否可以在Java中使用