【发布时间】:2021-12-27 08:10:47
【问题描述】:
我有两个活动(活动 A 和 B),当用户从活动 A 移动到活动 B 时,我的应用会显示插页式广告。在 Activity B 应用中有 AsyncTask,它使用 Room 从数据库中获取数据。
当活动 B 开始时没有任何广告或没有时间计数器的广告时,一切都可以正常工作。如果 Interstital Ad 有时间计数器,并且在它完成并且 Activity B 开始之后似乎没有从 AsyncTask 获取数据。
活动 A
if (id == R.id.menuCalendar) {
if (mInterstitialAd != null) {
mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
@Override
public void onAdDismissedFullScreenContent() {
// Called when fullscreen content is dismissed.
Intent intent = new Intent(getApplicationContext(), CalendarActivity.class);
startActivity(intent);
}
@Override
public void onAdFailedToShowFullScreenContent(AdError adError) {
// Called when fullscreen content failed to show.
}
@Override
public void onAdShowedFullScreenContent() {
// Called when fullscreen content is shown.
// Make sure to set your reference to null so you don't
// show it a second time.
mInterstitialAd = null;
}
});
mInterstitialAd.show(MainActivity.this);
} else {
Intent intent = new Intent(getApplicationContext(), CalendarActivity.class);
startActivity(intent);
}
return true;
}
活动 B
mCalendarViewModel = new ViewModelProvider(this).get(CalendarViewModel.class);
mCalendarViewModel.getTodoListForMonth(new CalendarParams(year, month)).observe(this, new Observer<List<TODO>>() {
@Override
public void onChanged(List<TODO> todos) {
DisplayCalendarInfo(todos);
}
});
mCalendarViewModel.setDateFilter(new CalendarParams(year, month));
【问题讨论】:
-
一些代码怎么样,你什么时候实例化和运行有广告时不起作用的ASyncTask?
-
我会尽量关注@logancodemaker 的建议
-
是的,但是.... LiveData 并不能完全替代 AsyncTask。是的,您应该使用它,但它可能与您的问题无关。
-
@Shark,你是对的。这个替换没有解决我的问题。此外,我注意到有时尽管有任何类型的广告,但一切都像魅力一样。这看起来很奇怪。我添加了一些代码。
-
minimal reproducible example 请,因为这是“我的代码有什么问题,顺便说一句我没有发布代码”类型的问题。
标签: android android-asynctask interstitial