Невозможно отобразить диалоговое окно прогресса, ОСОБЕННО, при открытии промежуточной рекламы из переработчика - PullRequest
0 голосов
/ 11 мая 2018

Я хочу добавить промежуточную рекламу между двумя действиями. Мое первое занятие - 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

1 Ответ

0 голосов
/ 25 июня 2018

Я получил это к работе, основываясь на комментарии Селвина, переместив ход показа в loadInterstitial ad и скрыв его до его открытия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...