Я хочу добавить промежуточную рекламу между двумя действиями. Мое первое занятие - recyclerView. Когда я нажимаю на нее, я открываю другое действие.
У меня есть два рабочих решения, но ни одно из них не дает мне желаемой производительности . В обоих случаях проблема заключается в том, что для загрузки объявления требуется время.
- Первое решение - Я открываю второе действие, а затем загружаю рекламное объявление. Проблема в этом случае пользователь открывает действие и имеет несколько секунд, чтобы щелкнуть по нему, прежде чем реклама прервется. В идеале активность не должна загружаться до показа объявления. Это нарушает поток.
- Второе решение (Это моё предпочтительное решение) - я нажимаю на ссылку переработчика, и она открывается. Когда я нажимаю на закрытое объявление, оно открывает новое действие. Проблема в том, что когда пользователь нажимает на элемент в окне повторного просмотра, для открытия вставки требуется время, это может вводить пользователя в заблуждение, и пользователь может начать нажимать несколько раз.
Моим идеальным решением, основанным на моем втором решении, было бы следующее: пользователь нажимает на элемент в окне реселлера, появляется загрузчик, показывается промежуточное добавление. Я добавил загрузчик в свой onClick, и появляется, когда я открываю элемент напрямую, но не открывается, когда я открываю вставку .
Это мой текущий код, основанный на моем втором решении:
//region Item touch listener
recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity().getApplicationContext(), listView, new itemsFragment.ClickListener() {
@Override
public void onClick(View view, int position) {
Item item = itemList.get(position);
String itemId = item.getId();
//STARTING LOADER HERE
ProgressDialog progress = new ProgressDialog(this);
progress.setTitle("Loading");
progress.setCancelable(false);
progress.show();
//OPEN FOR CONDITION
if ((counter % 2) == 0) {
//LOADER NOT VISIBLE
loadInterstitialAd(itemId);
} else {
//LOADER VISIBLE
fetchItem(itemId);
}
//CLOSING LOADER HERE
progress.dismiss();
}
}));
//endregion
...
//region Interstitial ad
private void loadInterstitialAd(String itemId) {
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(SAMPLE_INTERSTITIAL_ID);
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
Log.e(TAG, "Loaded interstitial ad");
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
@Override
public void onAdFailedToLoad(int i) {
super.onAdFailedToLoad(i);
Log.e(TAG, "Failed to load interstitial ad");
}
@Override
public void onAdClosed() {
super.onAdClosed();
fetchItem(itemId);
}
});
AdRequest adRequest = new AdRequest.Builder().build();
mInterstitialAd.loadAd(adRequest);
}
//endregion